Ширина элемента в зависимости от ширины другого элемента - БЕЗ JavaScript - PullRequest
0 голосов
/ 27 апреля 2020

Мне нужно, чтобы длина элемента .divider была равна длине текста (.topic класс) + 2em , чтобы разделитель был немного длиннее текста. Это возможно при использовании только CSS (без JS)?

Вот код (и JSFiddle ):

<div class="divider"></div>
<div class="topic">
<div class="topic_symbols">@</div>
<div class="topic_text">THIS IS THE SAMPLE TEXT</div>
<div class="topic_symbols">@</div>
</div>
<div class="divider"></div>

.divider {
  border-bottom: 2px solid #fdb239;
  margin-left: 10%;
  margin-right: 10%;
}

.topic {
  display: flex;
  font-family: Tahoma, Geneva, sans-serif;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  font-size: calc(0.8em + 2.3vw);
}

.topic_symbols {
  color: #ee290b;
}

.topic_text {
  text-align: center;
  color: #3cae3f;
  margin: 1% 1em 1% 1em;
}

1 Ответ

1 голос
/ 27 апреля 2020

Не используйте div для стилизации, вместо этого используйте псевдоэлементы .topic_text div.

.topic_text:before,
.topic_text:after {
  content: "";
  border-bottom: 2px solid #fdb239;
  position: absolute;
  width: calc(100% + 2em); /* adjust as required */
  left: -1em;
}

.topic_text:before {
  top: -.25em;
  /* adjust as required */
}

.topic_text:after {
  bottom: -.25em;
}

.topic {
  display: flex;
  font-family: Tahoma, Geneva, sans-serif;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  font-size: calc(0.8em + 2.3vw);
  margin-top: 1em;
}

.topic_symbols {
  color: #ee290b;
}

.topic_text {
  text-align: center;
  color: #3cae3f;
  position: relative;
}
<div class="topic">
  <div class="topic_symbols">@</div>
  <div class="topic_text">THIS IS THE SAMPLE TEXT</div>
  <div class="topic_symbols">@</div>
</div>
...