Połączenie float i margin w CSS
Teraz nasz tekst jest dociśnięty do obrazka z lewej
strony. Spróbujmy nieco odsunąć
ten tekst. W tym celu ustawmy naszym akapitom
lewy margin na 30px, a divowi-rodzicowi
- czerwoną ramkę.
Niespodziewanie w prawo odsunie się tylko ten tekst, który przylega do diva-rodzica, a tekst, przylegający do obrazka - nie odsunie się:
<div>
<img src="img.png" alt="">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
</p>
<p>
some long text
</p>
</div>
div {
width: 400px;
border: 1px solid red;
text-align: justify;
}
p {
margin-left: 30px;
}
img {
float: left;
}
:
Aby zrozumieć, dlaczego tak jest, dodajmy akapitom zieloną ramkę:
<div>
<img src="img.png" alt="">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
</p>
<p>
some long text
</p>
</div>
div {
width: 400px;
border: 1px solid red;
text-align: justify;
}
p {
margin-left: 30px;
border: 1px solid green;
}
img {
float: left;
}
:
Jak widzimy, w rzeczywistości akapity odsuwają się
od lewej krawędzi, ale nie od obrazka, a od diva-rodzica.
Aby przyjrzeć się temu dokładniej, dodajmy
jeszcze półprzezroczystość obrazkowi za pomocą właściwości
opacity:
<div>
<img src="img.png" alt="">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
</p>
<p>
some long text
</p>
</div>
div {
width: 400px;
border: 1px solid red;
text-align: justify;
}
p {
margin-left: 30px;
border: 1px solid green;
}
img {
float: left;
opacity: 0.5;
}
:
Teraz dokładnie widać, że reakcja na margin-left
jest, tylko akapity w rzeczywistości są umieszczone
pod obrazkiem. Usuńmy odstęp, pozostawiając
jednak półprzezroczystość obrazka:
<div>
<img src="img.png" alt="">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
</p>
<p>
some long text
</p>
</div>
div {
width: 400px;
border: 1px solid red;
text-align: justify;
}
p {
border: 1px solid green;
}
img {
float: left;
opacity: 0.5;
}
:
Tak naprawdę tak wyglądają nasze akapity - ich tekst jest odsunięty przez obrazek, ale fizycznie akapity leżą pod obrazkiem, widać to po ramce, która zaczyna się od lewej krawędzi diva-rodzica.
Wróćmy do margin i wsuńmy obrazek
do pierwszego akapitu:
<div>
<p>
<img src="img.png" alt="">
Lorem ipsum dolor sit amet, consectetur adipiscing elitorire.
</p>
<p>
some long text
</p>
</div>
div {
width: 400px;
border: 1px solid red;
text-align: justify;
}
p {
margin-left: 30px;
border: 1px solid green;
}
img {
float: left;
opacity: 0.5;
}
:
Teraz obrazek przesuwa się razem z akapitami!