我正在實現一個包含語義標題(h3,h4等)的元素的設計,它們是全寬度塊元素,後面跟着一個垂直居中的水平線,它擴展了標題a的全部寬度:在CSS中,如何創建一個垂直居中的線,佔用塊元素後剩餘的水平空間?
我知道我可以照顧這通過在<div>
包裹每個頭和插入後,另一個塊級元素,但寧願不污染我的HTML這樣。我的第一個傾向是在頭部使用::after
元素,像這樣:
.line-header::after {
content:'\00a0';
display: inline-block;
float: right;
width: 55%;
margin-top: -12px;
border-bottom: 1px solid gray;
}
然而,這需要使得::after
元素固定寬度,這顯然不符合不同寬度頭工作:http://jsfiddle.net/nbSTf/
關於如何獲得一個可變寬度的行的任何想法,它將填充頭部右側的空間,而不會在HTML中插入額外的元素?
編輯:下面(暗示繪製標題的後面線全寬並設置背景顏色擦除文本後面的線) Tyriar的回答提醒我,這是發生在一個重複的背景圖像的前面 - 不幸的是沒有背景技巧可能。
我對你的方法印象深刻,並不知道發生了什麼。我曾經玩過它,顯然它可以很容易地打破,沒有圍繞'.line-header'的包裝http://jsfiddle.net/Tyriar/uJ5ww/仍然,很好的解決方案:) – 2013-03-15 09:32:01
這是一個有趣的解決方案 - 然而,甚至在Tyriar的小提琴中,包裝div將「寬度:100%」約束到合理的數量,如果滾動到結果窗格的右側,水平線仍然是相同的寬度,正確的 - 我有同樣的問題,但相反。 :)我需要它們排列在包含元素的RH邊緣。我錯過了什麼嗎? – 2013-03-15 20:41:04
@Eric P我的小提琴展示了一個反例,而不是修復。溢出x也可能是不夠的。這隻會在內容不在頁面中心並且不需要填充時才起作用。 – 2013-03-16 00:56:47