2017-07-02 8 views
0
<div class="text-mid"> 
    <span>TEXT</span> 
</div> 

CSS中心コンテンツと行の残りのスペースを埋める

.text-mid { 
    display:block; 
    margin: 10px; 
    padding; 10px; 
} 

私は配置したい画像のように→ enter image description here

編集として

Flexboxを使用しないソリューション

+0

日曜日はありませんか? – somethingnow

+1

ああ、私たちは日曜日に働いていますが、応答時間は少し長くなります:) – LGSon

+0

タイトルを更新していただきありがとうございます。 – somethingnow

答えて

0

これは非常に簡単に両方を使用して擬似要素を

を使用して行われ、これはまた、その背景に向かって完全に透明であろう。

メインのトリックは、あなたのマークアップを変更したくない場合は、すべての可能な幅の

.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があります。

.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

私たちはこれをフレックスで行うことができますか? – somethingnow

+1

すべてのセット、Adi。フレックスボックスはなくなった。 –

+0

私の質問を編集して私の答えに投票できなかった場合は、修正しました。 – LGSon

0

私は左と右のラインのための2つの新しいDIVさんを追加しました。私はまたclass.text-middisplayからflexに変更しました。

.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

フレックスなしでこれを行うことはできますか? – somethingnow

+0

私の質問を編集して私の答えに投票できなかった場合は、修正しました。 – LGSon

1

をカバーするのに十分な各擬似にラッパーとwidthoverflow: hiddenを設定することです:

.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

関連する問題