iT邦幫忙

0

請教一個CSS 有關 ::before 及 position問題

  • 分享至 

  • xImage

如標題,小弟目前想做一個效果如下,是很常看到的標題搭配兩旁的橫線
https://ithelp.ithome.com.tw/upload/images/20220606/20139628oobdeMYDhZ.png

看了網路上的範例是說用::before和::after去做,但是我::before和::after照範例設定position:absolute, relative是中間的標題文字(使用p標籤),兩旁的線會超出我希望他包在裡面的div,如下圖
https://ithelp.ithome.com.tw/upload/images/20220606/201396286vN2gz46Ar.png

因為想把它做成元件,之後靠prop傳入動態更新標題文字就好,想請問如何達成右邊的橫線可以自動隨著標題文字的長度自動增減,且不會超出自身的div呢?
發現只要有設定position:absolute的元素都會自己突破div的限制(我div是flex 因為要跟旁邊一個按鈕做並排,最外層綠色整個元件的寬度是固定的。

還請CSS高手大大幫忙解答,感激不盡~

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

3
listennn08
iT邦高手 5 級 ‧ 2022-06-06 17:00:05
最佳解答

用 flex 就可以做到了

<div class="container">
  <div class="link">
      <a href="#">特價商品</a>
  </div>
  <a href="#">搜尋更多</a>
</div>
.container {
  width: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.container a {
  padding: 0.25rem;
  color: #222;
  display: flex;
  align-items: center;
  justify-content: center;
}
.container .link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
}
.container .link::after, .container .link::before {
  content: "";
  height: 2px;
  margin: 0 0.25rem;
  border: 1px solid #222;
}
.container .link::before {
  min-width: 15%;
}
.container .link::after {
  flex: 1;
}

preview
https://ithelp.ithome.com.tw/upload/images/20220606/20117165khMNIKR011.png

samuraigo iT邦新手 4 級 ‧ 2022-06-07 09:16:13 檢舉

太感謝大大了!原來flex可以這樣用!

我要發表回答

立即登入回答