Как наложить край буквы на рамку?

Необходимо "хвостик" буквы р наложить на край рамки. При этом, чтобы расстояние (выделено красными линиями) оставалось одинаковым:

Как выглядит сейчас

Вот, как должно быть в идеале:

Как должно быть

P.S. Тут берутся иконки из локального хранилища и, вероятно, не отобразятся здесь*. Также, как и чёрная полоса справа. Но, надеюсь, это не помешает решению.
Для вашего удобства, отмечу, что нужные элементы находятся в разделе и подразделах класса ramka1.

( *исправлено)

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  display: flex;
}

.ramka {
  flex-grow: 2;
  height: 100vh;
  display: flex;
  flex-direction: column;
  border: 10px solid #A7A7A7;
  border-radius: 25px 25px 15px 15px;
}

.ramka1 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 15px;
  background-color: #E5E4FB;
}

.ramka2 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 15px;
  background-color: #B5DEE5;
  flex-grow: 3;
}

.ramka3 {
  display: flex;
  background-color: #C76A05;
  flex-grow: 2;
  justify-content: space-around;
  align-items: center;
}

.ramka31 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 9px;
  font-size: 2vw;
}

.ramka32 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 9px;
  font-size: 2vw;
}

.ramka33 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 9px;
  font-size: 2vw;
}

.inline {
  display: inline-flex;
  justify-content: space-around;
  list-style: none;
  flex-grow: 1;
}

.one {
  font-size: 4vw;
  display: flex;
  align-items: baseline;
}

.two {
  display: flex;
  align-items: flex-end;
  height: 100%;
}

.twotwo {
  font-size: 7vw;
  display: flex;
  align-items: center;
}

.oneone {
  display: flex;
  flex-direction: row;
  align-items: center;
  font-size: 2vw;
}

.inline1 {
  display: inline-flex;
  justify-content: space-evenly;
  flex-grow: 1;
  list-style-position: inside;
}

.inline333 {
  list-style-position: inside;
}

.three {
  list-style: none;
  margin-left: 2.25em;
  margin-bottom: -0.25em;
}

.left {
  margin-left: 2.5em;
}

.threethree {
  text-align: center;
  margin-bottom: 0.25em;
}

.leftb {
  margin-left: 2.5em;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Доп. задание 3.1</title>
  <link rel="stylesheet" href="main.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
</head>

<body>
  <div class="ramka">
    <div class="ramka1">
      <ul class="inline">
        <li class="one"><i class="fa fa-home fa-fw"></i>Первый элемент</li>
        <li class="two"><i class="fa fa-sign-in fa-fw"></i>Второй элемент</li>
      </ul>
    </div>
    <div class="ramka2">
      <ol class="inline1">
        <div class="oneone">
          <li type="A">Первый элемент</li>
        </div>
        <li class="twotwo"><i class="fa fa-group fa-fw"></i>Второй элемент</li>
      </ol>
    </div>
    <div class="ramka3">
      <div class="ramka31">
        <ol class="inline333" reversed>
          <li class="three"><i class="fa fa-thumbs-o-up fa-fw"></i>Первый элемент</li>
          <div class="threethree">
            <li type="I">Второй элемент</li>
          </div>
        </ol>
      </div>
      <div class="ramka32">
        <ol class="inline333" type="i">
          <li class="left">Первый элемент</li>
          <li class="leftb">Второй элемент</li>
        </ol>
      </div>
      <div class="ramka33">
        <ol class="inline333">
          <li class="left">Первый элемент</li>
          <li class="leftb">Второй элемент</li>
        </ol>
      </div>
    </div>
  </div>
  <div<img src="./1х1.png" style="width: 1px; height: 100vh; background-color: black;">
</body>

</html>


Ответы (1 шт):

Автор решения: UModeL

Так как дополнительных и особых требований не предъявлялось, то идём по простейшему пути:

  • Оборачиваем строку в тег <span>;
  • В CSS добавляем новое правило .one span {};
  • С помощью свойства transform, увеличиваем текст посредством scale() и компенсируем увеличение по X сдвигом через translateX().

Этот способ хорош тем, что transform, в данном случае, увеличивает текст только визуально, сохраняя исходный размер <span> и не ломая вёрстку.

В итоге, получается следующее:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  display: flex;
}

.ramka {
  flex-grow: 2;
  height: 100vh;
  display: flex;
  flex-direction: column;
  border: 10px solid #A7A7A7;
  border-radius: 25px 25px 15px 15px;
}

.ramka1 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 15px;
  background-color: #E5E4FB;
}

.ramka2 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 15px;
  background-color: #B5DEE5;
  flex-grow: 3;
}

.ramka3 {
  display: flex;
  background-color: #C76A05;
  flex-grow: 2;
  justify-content: space-around;
  align-items: center;
}

.ramka31 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 9px;
  font-size: 2vw;
}

.ramka32 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 9px;
  font-size: 2vw;
}

.ramka33 {
  display: flex;
  border: 6.5px solid #317F7F;
  border-radius: 9px;
  font-size: 2vw;
}

.inline {
  display: inline-flex;
  justify-content: space-around;
  list-style: none;
  flex-grow: 1;
}

.one {
  font-size: 4vw;
  display: flex;
  align-items: center;
}
.one span {
  transform: scale(1.25) translatex(0.9em);
}

.two {
  display: flex;
  align-items: flex-end;
  height: 100%;
}

.twotwo {
  font-size: 7vw;
  display: flex;
  align-items: center;
}

.oneone {
  display: flex;
  flex-direction: row;
  align-items: center;
  font-size: 2vw;
}

.inline1 {
  display: inline-flex;
  justify-content: space-evenly;
  flex-grow: 1;
  list-style-position: inside;
}

.inline333 {
  list-style-position: inside;
}

.three {
  list-style: none;
  margin-left: 2.25em;
  margin-bottom: -0.25em;
}

.left {
  margin-left: 2.5em;
}

.threethree {
  text-align: center;
  margin-bottom: 0.25em;
}

.leftb {
  margin-left: 2.5em;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Доп. задание 3.1</title>
  <link rel="stylesheet" href="main.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
</head>

<body>
  <div class="ramka">
    <div class="ramka1">
      <ul class="inline">
        <li class="one"><i class="fa fa-home fa-fw"></i><span>Первый элемент</span></li>
        <li class="two"><i class="fa fa-sign-in fa-fw"></i>Второй элемент</li>
      </ul>
    </div>
    <div class="ramka2">
      <ol class="inline1">
        <div class="oneone">
          <li type="A">Первый элемент</li>
        </div>
        <li class="twotwo"><i class="fa fa-group fa-fw"></i>Второй элемент</li>
      </ol>
    </div>
    <div class="ramka3">
      <div class="ramka31">
        <ol class="inline333" reversed>
          <li class="three"><i class="fa fa-thumbs-o-up fa-fw"></i>Первый элемент</li>
          <div class="threethree">
            <li type="I">Второй элемент</li>
          </div>
        </ol>
      </div>
      <div class="ramka32">
        <ol class="inline333" type="i">
          <li class="left">Первый элемент</li>
          <li class="leftb">Второй элемент</li>
        </ol>
      </div>
      <div class="ramka33">
        <ol class="inline333">
          <li class="left">Первый элемент</li>
          <li class="leftb">Второй элемент</li>
        </ol>
      </div>
    </div>
  </div>
  <div<img src="./1х1.png" style="width: 1px; height: 100vh; background-color: black;">
</body>

</html>

→ Ссылка