Как наложить край буквы на рамку?
Необходимо "хвостик" буквы р наложить на край рамки. При этом, чтобы расстояние (выделено красными линиями) оставалось одинаковым:
Вот, как должно быть в идеале:
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 шт):
Так как дополнительных и особых требований не предъявлялось, то идём по простейшему пути:
- Оборачиваем строку в тег
<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>

