2016-11-19 16 views
6

Boşlukların ortasında bir çizgi yapmak istiyorum. Aşağıdaki resimde, satır kırmızı kutuların ortasında olmalıdır. Ben satır yüksekliğini kullanarak, ama mümkün değil yapmaya çalışıyorumBoşlukların ortasındaki yatay çizgi

enter image description here

.

HTML/CSS:

.wrap { 
 
    text-align: center; 
 
    margin: 20px; 
 
} 
 
.links { 
 
    padding: 0 10px; 
 
    border-top: 1px solid #000; 
 
    height: 1px; 
 
    line-height: 0.1em; 
 
} 
 
.dot { 
 
    width: 20px; 
 
    height: 20px; 
 
    background: red; 
 
    float: left; 
 
    margin-right: 150px; 
 
    position: relative; 
 
    top: -10px; 
 
}
<div class="wrap"> 
 
    <div class="links"> 
 
    <div class="dot"></div> 
 
    <div class="dot"></div> 
 
    <div class="dot"></div> 
 
    </div> 
 
</div>

Demo: https://jsfiddle.net/nkq468xg/

+0

neden sadece SO ("Run kod parçacığı" mavi düğme) üzerine burada söz konusu kod parçacığını kontrol – Geeky

+0

yerine hat-yükseklik linklere sınır-top cant'kullanma olduğu ihtiyacın olan şey bu mu? Konum eklendi: göreceli; üst: -10px; '' .dot' için kodunuzda. https://jsfiddle.net/nkq468xg/3/ – connexo

+0

Çizgiyi çizmek için bir 1piksel arka plan resmi kullanabilir ve sonunda satır içi bloğu kullanamazsınız: https://jsfiddle.net/nkq468xg/4/ –

cevap

6

Senkullanabilirsiniz Burada

kod links numaralı telefondanve hat için :before sargı elemanını sargı elemanında kullanabilirsiniz.

.wrap { 
 
    text-align: center; 
 
    margin: 20px; 
 
    position: relative; 
 
} 
 
.links { 
 
    padding: 0 10px; 
 
    display: flex; 
 
    justify-content: space-between; 
 
    position: relative; 
 
} 
 
.wrap:before { 
 
    content: ''; 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 0; 
 
    border-top: 1px solid black; 
 
    background: black; 
 
    width: 100%; 
 
    transform: translateY(-50%); 
 
} 
 
.dot { 
 
    width: 20px; 
 
    height: 20px; 
 
    background: red; 
 
}
<div class="wrap"> 
 
    <div class="links"> 
 
    <div class="dot"></div> 
 
    <div class="dot"></div> 
 
    <div class="dot"></div> 
 
    </div> 
 
</div>

2

Burada hat üstünde aslında bir numara, ama o HTML başka bir öğe eklemek yapar:

https://jsfiddle.net/nkq468xg/2/

.wrap { 
 
    text-align: center; 
 
    margin: 20px; 
 
} 
 

 
.links { 
 
    height: 20px; 
 
    position: relative; 
 
} 
 
hr { border: 0; 
 
height: 1px; 
 
background: black; 
 
position: absolute; 
 
top: 1px; 
 
width: 100%; 
 
} 
 
.dot { 
 
    width: 20px; 
 
    height: 20px; 
 
    background: red; 
 
    float: left; 
 
    margin-right: 150px; 
 
}
<div class="wrap"> 
 
    <div class="links"> 
 
    <hr> 
 
    <div class="dot"></div> 
 
    <div class="dot"></div> 
 
    <div class="dot"></div> 
 
    </div> 
 
    </div>

+0

HTML öğeleri eklemek *** her zaman *** son çare olmalı. Burada kesinlikle gereksiz. – connexo

+0

Satırların üstüne veya altına çizgi gerekiyorsa bağlı. – junkfoodjunkie

+0

Hayır, bu durumda ek işaretleme gerektirmez. – connexo

1

Sen burada SO sorunuzu Kod pasajınızı kontrol :after

.links { 
    padding: 0 10px; 
    overflow: auto; // Your div will have the height of the overflowing elements 
} 

.links::after { 
    content: ''; 
    width: 100%; 
    height: 1px; 
    background: black; 
    display: block; 
    position: relative; 
    top: 10px; 
} 
1

gibi, sözde elemanı kullanabilirsiniz ("Run kod parçacığı" mavi düğme), ne ihtiyaç vardır? .dot kodunuzda position: relative; top: -10px; eklendi.

.dot { 
    position: relative; 
    top: -10px; 
} 

Fiddle: https://jsfiddle.net/nkq468xg/3/

İlgili konular