Nie, margines auto nie zmieni rozmiaru elementu akapitu. Po prostu próbuje automatycznie określić odpowiedni rozmiar marginesu na stronach o automatycznym rozmiarze elementu. Zasadniczo, jeśli chcesz, aby akapit był mniejszy niż element div, który go zawiera, możesz ustawić statyczną szerokość akapitów jako określoną szerokość lub procent wewnętrznej szerokości elementu rodzica. Inną opcją, jeśli nie chcesz wykonywać statycznych rozmiarów akapitów, jest ustawienie wypełnienia na elemencie nadrzędnym lub ustawienie marginesów statycznych na akapitach.
div.paragraph-container {
padding: 20px; /* or padding: 20px 20px 20px 20px; sets all the padding individually (top, right, bottom, left) */
}
Spowoduje to, że wszystkie akapity będą znajdować się w środku elementu div i będą o 40 pikseli mniejsze, zakładając, że akapity nie mają marginesów.
div.paragraph-container p {
margin: 10px 20px; /* sets the margin on the paragraph(s) to 10px on top and bottom and 20px on left and right which does the same as the first example assuming that the div does not have padding. */
}
Jeśli chcesz granica być dokładnie szerokość tekstu następnie:
div.paragraph-container p {
border-bottom: 1px dotted black;
padding: 0px 0px 5px 0px;
margin: 10px 20px;
}
div.paragraph-container {
padding: 0px;
}
Zakładając tekst wypełnia element akapitu to będzie działać. Jeśli masz dwa słowa w akapicie, to nie będzie on tylko tak szeroki jak tekst. Jedynym sposobem, aby to zrobić, byłby element liniowy, taki jak przęsło lub element, który został ustawiony na display: inline;
, ale elementy śródliniowe zostaną pogrupowane obok siebie, chyba że umieścisz między nimi element blokujący.
Właśnie tego szukałem, dzięki. – user2020058
display: tablica jest bardziej wydajna i nie trzeba ich tworzyć jako inline-boxów, a następnie owijać je w div –
Nie wiedziałem o "display: table" i rozmiarach. Wcześniej celowałem w IE7, więc jestem trochę nieświadomy tego. Dzięki! – SlightlyCuban