#html #css
#HTML #css
Вопрос:
Как я могу добавить круг поверх двух вертикальных div в HTML? Мне удалось получить 2 вертикальных блока:
но я не могу понять, как создать круг посередине, как показано ниже:
Цель состоит в том, чтобы иметь белый круг с синей линией и возможность добавлять логотип в круг. У меня есть следующий фрагмент кода:
.html {
height: 100%;
}
*,
*:before,
*:after {
box-sizing: border-box;
}
.body {
background-color: #000;
font-family: "Open Sans", sans-serif;
height: 100%;
}
.vidyard_padding {
height: 100%;
}
.vc {
display: table;
height: 100%;
width: 100%;
}
.vc-inner {
display: table-cell;
text-align: center;
vertical-align: middle;
}
.cta {
background-color: #fff;
height: 360px;
margin: 0 auto;
overflow: hidden;
position: relative;
width: 640px;
}
.cta-full {
height: 100%;
width: 100%;
}
.cta-half {
float: left;
height: 100%;
width: 50%;
}
.cta-block {
display: table;
height: 100%;
width: 100%;
}
.cta-block-inner {
display: table-cell;
padding: 20px;
text-align: center;
vertical-align: middle;
}
.cta-block p {
line-height: 1.4125;
margin: 0;
}
.cta-block p.white {
color: #FFFFFF;
}
.cta-block p .btn {
margin-top: 10px;
}
.cta-block .btn {
background-color: #414142;
border-radius: 2px;
color: #FFFFFF;
display: inline-block;
font-size: 10px;
letter-spacing: 1px;
padding: 8px 12px;
text-decoration: none;
}
.cta-block .btn:hover {
background-color: #313132;
}
<div class="cta-half">
<div class="cta-block" style="background-color:#FFFFFF;">
<div class="cta-block-inner">
<p class="black">Watch our Quick Start</p>
<a class="btn" href="https://google.com">Quick Start</a> </div>
</div>
</div>
<div class="cta-half">
<div class="cta-block" style="background-color:#47b2ffff;">
<div class="cta-block-inner">
<p class="white">Start in the Cloud</p>
<a class="btn" href="https://google.com">Cloud</a> </div>
</div>
</div>
Ответ №1:
Вы можете использовать ::before
::after
псевдоэлемент или элемент с пустым content
и некоторым позиционированием. Вы можете установить width
и height
нового элемента и добавить некоторые border-radius
, чтобы сделать его кругом. Не забудьте установить position: relative
на .cta-half
элементе, чтобы вы могли перемещать круг относительно этого.
Вы можете добавить следующее в свой фрагмент в jsfiddle, он должен работать:
.cta-half {
position: relative;
}
.cta-half:last-of-type::after {
background-color: #fff;
border-radius: 50%;
border: 2px solid #47b2ff;
content: '';
height: 50px;
left: 0;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
width: 50px;
}
Если вы хотите добавить логотип в круг, вы можете обновить свой content
и добавить url()
. Я бы, вероятно, взял svg-версию логотипа и закодировал ее с помощью этого инструмента. Он преобразует изображение и использует его следующим образом:
content: url("data:image/svg xml,
");
Вы также можете добавить несколько padding
, чтобы уменьшить размер логотипа.
Результат:
Комментарии:
1. Я попробовал выше; Круг действительно отображается, но теперь два квадратных блока расположены горизонтально, а не вертикально.
2. Я определяю это: .cta-half { float: left; высота: 100%; ширина: 50%; позиция: относительная; } И это устранило проблему
3. Также моя последняя проблема связана с изображением. Мне трудно добавить изображение в круг. Я пытался:
.cta-half:last-of-type::after { background: url("https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_"G"_Logo.svg/753px-Google_"G"_Logo.svg.png"); background-color: #fff; border-radius: 50%; border: 2px solid #47b2ff; content: ''; height: 50px; left: 0; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 50px; }
но изображение не отображается в зале.4. Я только что обновил свой ответ подробностями о логотипе.