Jump to content
  • 0

Помогите по CSS - теория.


sashakiselev
 Share

Question

1.

Это пример из книжки, хоть это вроде и русский, но написанно так, что я не очень то понимаю принцип, хотя конечный результат ясен.

Хочется попросить тех, кому это хорошо понятный теоретический момент, перефразировать это как-нибудь. Что именно просходит и почему?

2.

В примере используется свойство height со значением auto (это значение мне понятно), но его наличие здесь ни на что не влияет. ?

цитата

Если у блочного элемента с высотой auto в нормальном потоке есть толко блочные потомки, тогда по умолчанию высота будет расстоянием от верха внешнего края рамки самого верхнего дочернего блочного элемента до низа внешнего края нижней рамки самого нижнего дочернего блочного элемента. Следовательно, поля дочерних элементов будут выходить за

границы элемента, в котором они находятся.

Однако если у блочного элемента есть отступ сверху или снизу

или верхняя или нижняя рамки, его высотой будет расстояние от верха внешнего края верхнего поля его самого верхнего дочернего элемента до внешнего края нижнего поля самого нижнего дочернего элемента:

пример

<div><p>Paragraph</p></div>

div {
height: auto; /* на что-либо должно влиять тут?*/
background: silver;
padding: 1px 0; /* или же border: 1px solid;*/
}

p {
background:#999;
border: 1px solid red;
margin:2em 0;
}

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

1) Перефразирую: "Если у вас есть блочный элемент с атрибутом height: auto; в нормальном потоке, с блочными потомками(те элементы что в нутри него), то его высота будет от веерхней границе первого до нижней границе последнего потомка, если у блочного элемента есть отступы(например padding) то к высоте прибавятся еще и поля(это какраз отступы)"

2) Относительно того зачем там нужен вообще height: auto; фишка в том что по умолчанию уже стоит значение auto но вдруг оно до этого у вас было где-то предопределено? А так да в данном примере можно убрать его не чего толком не изменится...

P.S. Очень сомнительную литературу вы читаете, те выражения которыми оперирует автор, достаточно сложно подхватить с первого раза...

Edited by stars
Link to comment
Share on other sites

  • 0
P.S. Очень сомнительную литературу вы читаете, те выражения которыми оперирует автор, достаточно сложно подхватить с первого раза...

Эрик Мейер "CSS. Каскадные таблицы стилей. Подробное руководство", 3-е издание

страница 207 :)

Edited by sigma77
Link to comment
Share on other sites

  • 0

height: auto нужен только в том случае, если height переопределен для элемента выше. В остальных случаях auto это значение по умолчанию и смысла в его добавлении нет.

Вот к примеру так.

div {
height: 300px;
}

div.two {
height: auto;
}

Здесь вначале для всех дивов задана одна высота, а для отдельного, где высота должна равна быть содержимому, т.е. вычисляться автоматом, стоит значение auto.

Написано в книге действительно мудрено, фиг поймешь сразу о чем речь. То ли перевод хромает, что часто случается, то ли изначально так автор выражается.

Link to comment
Share on other sites

  • 0

stars, спасибо большущее! теперь я понял.

как правильно замечено выше это Эрик Мейер "CSS.." 3-е издание, но я понимаю, что тут скорее переводчик виноват, я не первую книгу читаю в переводе.. и как правило ощущение, что те кто делают перевод понятия не имеют о предмете. Надо в оригинале читать - я ленюсь:).

по умолчанию уже стоит значение auto

я как то об этом не задумывался, принимая как данность что блок-"родитель" растягивается "дочерним" блоком.

т.е. это происходит по причине наличия у свойств height и width по умолчанию значения auto?

*******************************

...где высота должна равна быть содержимому, т.е. вычисляться автоматом, стоит значение auto.

собственно, пока писал пост Влад ответил:)

спасибо

ЗЫ.. и спасибо всем за критику языка книшки - это важно.. поначалу пеняешь на себя. Сейчас приятное понимание того, что напрасно, а написано действительно отвратительно.

Edited by sashakiselev
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy