![]() |
|
Модераторы: Illuminaty |
![]()
|
|
| Rayled |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 1.5.2010 Репутация: 3 Всего: 3 |
Здравствуйте ребята. Помогите, пожалуйста, разобраться. Столкнулся тут с определениями в CSS замещаемых и незамещаемых элементов, но до конца въехать не могу. Выдержки из спецификации:
"Замещаемый элемент - элемент, для которого форматировщик CSS знает только внутренние размеры. В HTML элементы IMG, INPUT, TEXTAREA, SELECT и OBJECT можно привести в качестве примеров таких элементов. Например, содержимое элемента IMG часто замещается изображением, на которое указывает атрибут "src". CSS не определяет, как находить внутренние размеры." "Внутренние размеры - ширина и высота, определённые самим элементом, а не его окружением. В CSS2 принято, что все замещаемые элементы - и только замещаемые элементы - появляются с внутренними размерами." Значит ли это, что если я DIV'у явно задам размеры, то он тоже станет замещаемым? Ведь получается размеры определяются им самим, как, например, и у TEXTAREA. А если эти мои рассуждения не верны, то как быть с тем же IMG, ведь я же не только через width или height могу размер картинки установить, но и через стили. Пусть даже мне и придется display дополнительно указать. В общем, бардак у меня в голове, не пойму нифига.... |
|||
|
||||
| magelan |
|
|||
![]() потерял xPath ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 5.4.2010 Репутация: 4 Всего: 16 |
каким образом вы диву зададите размеры без цсс?
|
|||
|
||||
| Rayled |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 1.5.2010 Репутация: 3 Всего: 3 |
Да просто это первое, что пришло в голову. Вопрос-то был не в этом. Хорошо, можно TABLE, а не DIV. И что? Если через HTML задаем размеры, то замещаемый, а если через CSS, то нет? А какая разница-то по сути, зачем такие сложности с формулировками? Блин, или я не так все понял. В принципе, поэтому я и создал этот топик, чтоб разобраться. |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 97 Всего: 401 |
В актуальной спеке CSS замещаемый элемент определен как "An element whose content is outside the scope of the CSS formatting model, such as an image, embedded document, or applet." Т.е. то, размеры чего определены "где-то за пределами HTML/CSS", например, источником картинки. DIV и TABLE, очевидно, таковыми не являются...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
замещаемый элемент - элемент, размеры которого зависят не от содержимого (наполнения innerHTML), а только от его атрибутов. для Картинки атрибуты (src) определяют размер реальной картинки. для span - размер определяется в том числе и набитым в спан содержимым. textarea - элемент, у которого есть содержательное наполнение, однако его размер устанавливается атрибутами.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 97 Всего: 401 |
ksnk, верно ли я понял, что речь о "невизуальных" атрибутах (т.е. не width/height, а src для картинки, data для объекта, type и size для input-а и т.п.)?
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Rayled |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 1.5.2010 Репутация: 3 Всего: 3 |
ksnk, то-есть, при определении замещаемого элемента, надо просто задать себе вопрос: "А могу ли я изменить его размеры без атрибутов и CSS, используя только разный объем содержимого, которое я могу вбить непосредственно в HTML-код (грубо говоря, текст)?" И если нет, то значит элемент замещаемый. И еще. Выходит, что все визуально отображаемые элементы, которые вообще не могут иметь содержимого - замещаемые (IMG, INPUT). Так?
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
я честно пытался понять какие объекты будут замещаемыми и незамещаемыми из определения в спеке. Не удалось. Потом попытался понять чем img с textarea отличается от span'а. Отличие, по большому счету - единственное ;) Да. Всякие атрибуты явно указывающие размеры - не считаются, видимо. можно попытатся понять смысл определения из навешиваемых на это определение свойств. Это сообщение отредактировал(а) ksnk - 24.9.2010, 14:07 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 97 Всего: 401 |
ksnk, по той ссылке перевод устаревшей, так и не прижившейся спеки CSS2. В актуальной (CSS2.1) написано так:
Т.е., насколько я понял, главный признак — даже не наличие "родной" ширины/высоты, а именно независимость размеров от стилей окружения. В CSS3 Generated and Replaced Content Module (правда, застрявшем в статусе глухого черновика аж на 7 лет с хвостиком) определение еще более конкретизировано:
Т.е., опять же насколько я понимаю (хотя понимаю плоховато;), сюда относятся только элементы, содержимое которых заменяется чем-то из внешнего источника (картинки и т.п.). Правда, тут непонятно, как быть с инпутами и текстариями... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Тоесть элемент, помещенный в узкую ячейку таблицы и одиноко брошеннный в body будут иметь одинаковые размеры? Да, вероятно это тоже можно назвать определением imho, разумнее составить список тегов, которые являются replaced. В конце концов тегов в html ограниченное число и определить их перечислением не такая и дурацкая идея. после этого вполне можно примерять к ним то или иное более компактное определение. В принципе - кроме "форменных" input'ов разнообразных, textarea, select и img больше ничего в голову не приходит. Размер элемента button зависит от его содержимого. Если окажется, что этот элемент на самом деле replaced, мое определение будет совсем неправильным Все остальные, вроде как, под мое определение не подходят. Есть какой-нибудь еще кандидат на "замещаемые"? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 97 Всего: 401 |
Object, embed, applet, iframe...
Кстати, самое простое и ясное определение было в CSS1:
Но вот всё инпутское племя, получается, по старому определению, не риплейсид... UPD.: а вот по-сайнтпойнтовски, выходит, риплейсид Это сообщение отредактировал(а) SelenIT - 24.9.2010, 16:30 -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Вёрстка веб-сайтов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |