Модераторы: Illuminaty
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замещаемые и незамещаемые элементы, Помогите разобраться 
:(
    Опции темы
Rayled
Дата 23.9.2010, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 1.5.2010

Репутация: 3
Всего: 3



Здравствуйте ребята. Помогите, пожалуйста, разобраться. Столкнулся тут с определениями в CSS замещаемых и незамещаемых элементов, но до конца въехать не могу. Выдержки из спецификации:
"Замещаемый элемент - элемент,  для которого форматировщик CSS знает только внутренние размеры. В HTML элементы IMG, INPUT, TEXTAREA, SELECT и OBJECT можно привести в качестве примеров таких элементов. Например, содержимое элемента IMG часто замещается изображением, на которое указывает атрибут "src". CSS не определяет, как находить внутренние размеры."
"Внутренние размеры - ширина и высота, определённые самим элементом, а не его окружением. В CSS2 принято, что все замещаемые элементы - и только замещаемые элементы - появляются с внутренними размерами."
Значит ли это, что если я DIV'у явно задам размеры, то он тоже станет замещаемым? Ведь получается размеры определяются им самим, как, например, и у TEXTAREA. А если эти мои рассуждения не верны, то как быть с тем же IMG, ведь я же не только через width или height могу размер картинки установить, но и через стили. Пусть даже мне и придется display дополнительно указать. В общем, бардак у меня в голове, не пойму нифига.... 
PM   Вверх
magelan
Дата 23.9.2010, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 5.4.2010

Репутация: 4
Всего: 16



каким  образом вы диву зададите размеры без цсс?
PM MAIL   Вверх
Rayled
Дата 24.9.2010, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 1.5.2010

Репутация: 3
Всего: 3



Цитата(magelan @ 23.9.2010,  22:48)
каким  образом вы диву зададите размеры без цсс?

Да просто это первое, что пришло в голову. Вопрос-то был не в этом. Хорошо, можно TABLE, а не DIV. И что? Если через HTML задаем размеры, то замещаемый, а если через CSS, то нет? А какая разница-то по сути, зачем такие сложности с формулировками? Блин, или я не так все понял. В принципе, поэтому я и создал этот топик, чтоб разобраться.
PM   Вверх
SelenIT
Дата 24.9.2010, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 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, очевидно, таковыми не являются...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
ksnk
Дата 24.9.2010, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



замещаемый элемент - элемент, размеры которого зависят не от содержимого (наполнения innerHTML), а только от его атрибутов. для Картинки атрибуты (src) определяют размер реальной картинки. для span - размер определяется в том числе и набитым в спан содержимым. textarea - элемент, у которого есть содержательное наполнение, однако его размер устанавливается атрибутами.




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
SelenIT
Дата 24.9.2010, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



ksnk, верно ли я понял, что речь о "невизуальных" атрибутах (т.е. не width/height, а src для картинки, data для объекта, type и size для input-а и т.п.)?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Rayled
Дата 24.9.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 1.5.2010

Репутация: 3
Всего: 3



ksnk, то-есть, при определении замещаемого элемента, надо просто задать себе вопрос: "А могу ли я изменить его размеры без атрибутов и CSS, используя только разный объем содержимого, которое я могу вбить непосредственно в HTML-код (грубо говоря, текст)?" И если нет, то значит элемент замещаемый. И еще. Выходит, что все визуально отображаемые элементы, которые вообще не могут иметь содержимого - замещаемые (IMG, INPUT). Так?
PM   Вверх
ksnk
Дата 24.9.2010, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(SelenIT @  24.9.2010,  11:55 Найти цитируемый пост)
ksnk, верно ли я понял, что речь о "невизуальных" атрибутах (т.е. не width/height, а src для картинки, data для объекта, type и size для input-а и т.п.)? 

я честно пытался понять какие объекты будут замещаемыми и незамещаемыми из определения в спеке. Не удалось. Потом попытался понять чем img с textarea отличается от span'а. Отличие, по большому счету - единственное ;)
Да. Всякие атрибуты явно указывающие размеры - не считаются, видимо.

можно попытатся понять смысл определения из навешиваемых на это определение свойств. 


Это сообщение отредактировал(а) ksnk - 24.9.2010, 14:07


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
SelenIT
Дата 24.9.2010, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



ksnk, по той ссылке перевод устаревшей, так и не прижившейся спеки CSS2. В актуальной (CSS2.1) написано так:
Цитата

Replaced element

An element whose content is outside the scope of the CSS formatting model, such as an image, embedded document, or applet. For example, the content of the HTML IMG element is often replaced by the image that its "src" attribute designates. Replaced elements often have intrinsic dimensions: an intrinsic width, an intrinsic height, and an intrinsic ratio. For example, a bitmap image has an intrinsic width and an intrinsic height specified in absolute units (from which the intrinsic ratio can obviously be determined). On the other hand, other documents may not have any intrinsic dimensions (for example, a blank HTML document). 

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

В CSS3 Generated and Replaced Content Module (правда, застрявшем в статусе глухого черновика аж на 7 лет с хвостиком) определение еще более конкретизировано:
Цитата

If the computed value of the part of the 'content' property that ends up being used is a single URI, then the element or pseudo-element is a replaced element.

Т.е., опять же насколько я понимаю (хотя понимаю плоховато;), сюда относятся только элементы, содержимое которых заменяется чем-то из внешнего источника (картинки и т.п.). Правда, тут непонятно, как быть с инпутами и текстариями...



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
ksnk
Дата 24.9.2010, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(SelenIT @  24.9.2010,  14:49 Найти цитируемый пост)
Т.е., насколько я понял, главный признак — даже не наличие "родной" ширины/высоты, а именно независимость размеров от стилей окружения.

Тоесть элемент, помещенный в узкую ячейку таблицы и одиноко брошеннный в body будут иметь одинаковые размеры? Да, вероятно это тоже можно назвать определением smile

imho, разумнее составить список тегов, которые являются replaced. В конце концов тегов в html ограниченное число и определить их перечислением не такая и дурацкая идея. после этого вполне можно примерять к ним то или иное более компактное определение.

В принципе - кроме "форменных" input'ов разнообразных, textarea, select и img больше ничего в голову не приходит. Размер элемента button зависит от его содержимого. Если окажется, что этот элемент на самом деле replaced, мое определение будет совсем неправильным smile Впрочем под определение выше он тоже не подходит, так как в узкой ячейке постарается занять весь доступный объем. 
Все остальные, вроде как, под мое определение не подходят. Есть какой-нибудь еще кандидат на "замещаемые"?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
SelenIT
Дата 24.9.2010, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 97
Всего: 401



Object, embed, applet, iframe...

Кстати, самое простое и ясное определение было в CSS1:
Цитата

A replaced element is an element which is replaced by content pointed to from the element. E.g., in HTML, the 'IMG' element is replaced by the image pointed to by the 'SRC' attribute.


Но вот всё инпутское племя, получается, по старому определению, не риплейсид... smile

UPD.: а вот по-сайнтпойнтовски, выходит, риплейсид smile

Это сообщение отредактировал(а) SelenIT - 24.9.2010, 16:30


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0714 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.