Arasındaki fark tam olarak nedir inline
inline-block
CSS ve değerleridisplay
?
Arasındaki fark tam olarak nedir inline
inline-block
CSS ve değerleridisplay
?
Yanıtlar:
<span>
İçinde bir element düşünün <div>
. Eğer verirsen<span>
Elemana 100 piksel yükseklik ve kırmızı kenarlık
ekran: satır içi
display: inline-block
Ekran bloğu
Kod: http://jsfiddle.net/Mta2b/
Olan elemanlar display:inline-block
gibi display:inline
elemanlar, ancak bir olabilir genişlik ve yükseklik . Bu, satır içi blok öğesini metin veya diğer öğeler içinde akarken blok olarak kullanabileceğiniz anlamına gelir.
Desteklenen stillerin özet olarak farkı:
margin-left
, margin-right
, padding-left
,padding-right
margin
, padding
, height
,width
p
, div
bir bütün genişliği hattı (bir satır sonu kuvvet), fakat saygı genişlik / yükseklik ve dikey / yatay doldurma / kenar olsun. Satır içi blok öğeleri blokla aynı davranışa sahiptir, ancak tüm satır
display: inline;
, bir cümlede kullanılacak bir görüntüleme modudur. Örneğin, bir paragrafınız varsa ve yaptığınız tek bir kelimeyi vurgulamak istiyorsanız:
<p>
Pellentesque habitant morbi <em>tristique</em> senectus
et netus et malesuada fames ac turpis egestas.
</p>
<em>
Türünde bir display: inline;
bu etiketi her zaman cümle içinde kullanıldığı için, varsayılan olarak. <p>
Türünde bir display: block;
bir cümle, ne de bir cümlede, bu cümle bir blok var ikisi de değil, çünkü varsayılan olarak.
Olan bir öğe a veya a veya dikey display: inline;
olamaz . Olan bir unsur olabilir bir var , ve .
Bir eklemek isterseniz için eleman, sen bu maddeyi ayarlamak gerekir . Şimdi birheight
width
margin
display: block;
width
height
margin
height
<em>
display: inline-block;
height
öğeye ve diğer tüm blok stillerine ( block
parçası inline-block
) , ancak bir cümleye ( inline
parçası inline-block
) yerleştirilir.
display
değerlerden birini seçerken neler yapabileceğimiz / yapamayacağımızdan bahsettiniz .
Yanıtlarda belirtilmeyen bir şey, satır içi öğenin satırlar arasında kırılabileceği, satır içi blok ise (ve açıkça engelleyemediği)! Bu nedenle satır içi öğeler, içindeki metin ve blokların cümlelerini biçimlendirmek için yararlı olabilir, ancak doldurulmadıkları için satır yüksekliğini kullanabilirsiniz .
<div style="width: 350px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<div style="display: inline; background: #F00; color: #FFF">
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<hr/>
<div style="width: 350px">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<div style="display: inline-block; background: #F00; color: #FFF">
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
Yukarıdaki tüm yanıtlar orijinal soru hakkında önemli bilgilere katkıda bulunur. Ancak yanlış görünen bir genelleme var.
Bu mümkündür grubu genişliği ve en az bir adet içi elemanının (ı düsünebilirz) yüksekliği göre -<img>
öğeye .
Her ikisi de burada ve bu yinelenen cevapta bunun mümkün olmadığını, ancak geçerli bir genel kural gibi görünmediğini kabul etti.
Misal:
img
Vardır display: inline
, ancak onun width
ve height
başarıyla kuruldu.
splattne'nin cevabı muhtemelen her şeyin çoğunu kapsıyordu, bu yüzden aynı şeyi tekrarlamam, ama: inline
ve CSS özelliği inline-block
ile farklı davranıyorlar direction
.
Bir sonraki snippet'te one two
(sırasıyla), LTR düzenlerinde olduğu gibi işlendiğini görürsünüz . Buradaki tarayıcının İngilizce kısmı LTR metni olarak otomatik olarak algıladığını ve soldan sağa oluşturduğundan şüpheleniyorum.
body {
text-align: right;
direction: rtl;
}
h2 {
display: block; /* just being explicit */
}
span {
display: inline;
}
<h2>
هذا عنوان طويل
<span>one</span>
<span>two</span>
</h2>
Devam edip seti Ancak, display
hiç inline-block
, tarayıcı saygı görünen direction
böylece mülkiyet ve sırayla sağdan sola doğru Elemanları kılmak two one
oluşturulur.
body {
text-align: right;
direction: rtl;
}
h2 {
display: block; /* just being explicit */
}
span {
display: inline-block;
}
<h2>
هذا عنوان طويل
<span>one</span>
<span>two</span>
</h2>
Bunun başka tuhaflıkları olup olmadığını bilmiyorum, sadece Chrome'da bunu ampirik olarak buldum.