2017-07-02 46 views

回答

0

這是使用僞元素

使用都非常輕鬆地完成,這也將是朝着它的背景是完全透明的。

主要的竅門是設置在包裝overflow: hidden和每個僞一width足以覆蓋所有可能的寬度的

.text-mid { 
 
    margin: 10px; 
 
    padding: 10px; 
 
    text-align: center; 
 
    overflow: hidden; 
 
} 
 
.text-mid span { 
 
    position: relative; 
 
    padding: 0 5px; 
 
} 
 
.text-mid span::before, 
 
.text-mid span::after { 
 
    content: ''; 
 
    position: absolute; 
 
    width: 50vw; 
 
    top: 50%; 
 
    border-top: 1px solid black; 
 
} 
 
.text-mid span::after { 
 
    left: 100%; 
 
} 
 
.text-mid span::before { 
 
    right: 100%; 
 
}
<div class="text-mid"> 
 
    <span>TEXT</span> 
 
</div>

+1

謝謝先生。您的解決方案精確而清晰。 – somethingnow

+1

下來的選民可以評論... ?? – LGSon

+1

看起來像是一個嫉妒而不是邏輯的人。 – somethingnow

1

這是調整後的CSS,不使用flexbox。

.text-mid { 
 
    width: 100%; 
 
    display: block; 
 
    text-align: center; 
 
    position: relative; 
 
} 
 

 
.middle { 
 
    padding: 10px; 
 
    background-color: white; 
 
} 
 

 
.start { 
 
    left: 0; 
 
} 
 

 
.finish { 
 
    right: 0; 
 
} 
 

 
.start, .finish { 
 
    transform: translateY(50%); 
 
    position: absolute; 
 
    top: 50%; 
 
    width: 50%; 
 
    background-color: black; 
 
    height: 1px; 
 
    z-index: -1; 
 
}
<div class="text-mid"> 
 
    <span class="start"></span> 
 
    <span class="middle">TEXT</span> 
 
    <span class="finish"></span> 
 
</div>

+0

我們可以做這個w/o flex嗎? – somethingnow

+1

All set,Adi。 Flexbox消失了。 –

+0

如果我對該問題的編輯導致您對我的答案投下了贊成票,我現在已經糾正了這一情況。 – LGSon

0

我已經添加了兩個新的DIV的左,右線。我也改變了class.text-middisplayflex

.text-mid { 
 
    display: flex; 
 
} 
 

 
span { 
 
    display: block; 
 
    margin: 0 5px; 
 
} 
 

 
#left { 
 
    background-color: #AAAAAA; 
 
    flex: 1; 
 
    height: 1px; 
 
    margin-top: 8px; 
 
} 
 

 
#right { 
 
    background-color: #AAAAAA; 
 
    flex: 1; 
 
    height: 1px; 
 
    margin-top: 8px; 
 
}
<div class="text-mid"> 
 
    <div id="left"></div> 
 
    <span>TEXT AREA</span> 
 
    <div id="right"></div> 
 
</div>

+0

我們可以做這個w/o flex嗎? – somethingnow

+0

如果我對該問題的編輯導致您對我的答案投下了贊成票,我現在已經糾正了這一情況。 – LGSon

1

如果你不想改變你的標記:

.text-mid { 
 
    text-align: center; 
 
    background-color: white; 
 
    position: relative; 
 
    z-index: -2; 
 
} 
 

 
.text-mid::before { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 0; 
 
    width: 100%; 
 
    height: 1px; 
 
    background-color: grey; 
 
    content: ' '; 
 
    z-index: -1; 
 
} 
 

 
.text-mid span { 
 
    background-color: white; 
 
    padding: 0 10px; 
 
}
<div class="text-mid"> 
 
    <span>TEXT</span> 
 
</div>

+0

如果我對該問題的編輯導致您對我的答案投下了贊成票,我現在已經糾正了這一情況。 – LGSon

+1

@LGSon我沒有downvote。你的答案和其他人一樣工作。 – PeterMader