CSS-də float və margin birləşməsi

Hal-hazırda mətnimiz şəklin sol tərəfinə sıxışdırılıb. Gəlin bu mətni bir az aralıq salmağa çalışaq. Bunun üçün abzaslarımıza sol margin 30px təyin edək və valideyn div-ə - qırmızı sərhəd verək.

Gözlənilmədən, yalnız valideyn div-ə bitişik olan mətn sağa doğru aralanaçaq, şəklə bitişik olan mətn isə aralanmayacaq:

html<div>
  <img src="img.png" alt="">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <p>
    some long text
  </p>
</div>
cssdiv {
  width: 400px;
  border: 1px solid red;
  text-align: justify;
}
p {
  margin-left: 30px;
}
img {
  float: left;
}

Результат:

Bunun niyə belə olduğunu başa düşmək üçün abzalara yaşıl sərhəd əlavə edək:

html<div>
  <img src="img.png" alt="">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <p>
    some long text
  </p>
</div>
cssdiv {
  width: 400px;
  border: 1px solid red;
  text-align: justify;
}
p {
  margin-left: 30px;
  border: 1px solid green;
}
img {
  float: left;
}

Результат:

Gördüyümüz kimi, əslində abzaslar sol kənardan aralanır, lakin şəkildən deyil, valideyn div-indən. Daha ətraflı baxmaq üçün gəlin şəklə opacity xassəsi vasitəsilə yarımsəffaflıq da əlavə edək:

html<div>
  <img src="img.png" alt="">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <p>
    some long text
  </p>
</div>
cssdiv {
  width: 400px;
  border: 1px solid red;
  text-align: justify;
}
p {
  margin-left: 30px;
  border: 1px solid green;
}
img {
  float: left;
  opacity: 0.5;
}

Результат:

İndi artıq aydın görünür ki, margin-left-ə reaksiya var, ancaq abzaslar əslində şəklin altında yerləşir. Gəlin aralığı çıxaraq, şəklin yarımsəffaflığını ise saxlayaq:

html<div>
  <img src="img.png" alt="">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <p>
    some long text
  </p>
</div>
cssdiv {
  width: 400px;
  border: 1px solid red;
  text-align: justify;
}
p {
  border: 1px solid green;
}
img {
  float: left;
  opacity: 0.5;
}

Результат:

Abzalarımızın əsl görünüşü belədir - onların mətni şəkil tərəfindən aralanıb, ancaq fiziki olaraq abzaslar şəklin altında yatır, bu, valideyn div-inin sol kənarından başlayan sərhəddən görünür.

Gəlin margin-i qaytaraq və şəkli birinci abzasa qoyaq:

html<div>
  <p>
    <img src="img.png" alt="">
    Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
  </p>
  <p>
    some long text
  </p>
</div>
cssdiv {
  width: 400px;
  border: 1px solid red;
  text-align: justify;
}
p {
  margin-left: 30px;
  border: 1px solid green;
}
img {
  float: left;
  opacity: 0.5;
}

Результат:

İndi şəkil abzalarla birlikdə hərəkət edir!