LINUX.ORG.RU

подскажите по css


0

1

вот две записи

#team_table p { font-size: 15px; color: #cccccc; }

.personal p { text-indent: 1.5em; font-size: 15px; color: #cccccc; }

одна описывает как выглядит «р» вложенный в див team_table вторая описывает «р» для класса personal

а какой у них приоритет? если я в див team_table вкладываю, например, таблицу класса personal, то каким будет «р»?

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


и то и другое по-отдельности - работает.
вместе - я запутался.

и еще вопрос?
насколько кошерно писать теги р, р2, р3 и т.п. ? для разных типа написания

dk-
() автор топика

помоему класс слабее.

смотри в firebug этот елемент, там показывает йерархию.

koriun
()

при прочих равных у id преимужество перед class, более выше приоритет (но так не рекомендуют делать) непосредственно перед стилем описанным в теге конструкцией типа style=«bla bla»

и не забывайте, что с id может быть только один элемент, а элементов с class сколько угодно много

shrub ★★★★★
()
Ответ на: комментарий от shrub

т.е. лучше все вынести в классы?

а р2 р3 и т.п. можно делать? оно как бы работает. но как правильно?

dk-
() автор топика
Ответ на: комментарий от dk-

>> а р2 р3 и т.п. можно делать?

я не совсем понял вопрос :) p2 и p3 - это что-то типо h2 и h3? если да, то так теги модифицировать нельзя

shrub ★★★★★
()
Ответ на: комментарий от dk-

Новые элементы создавать нельзя. В лучшем случае получишь инлайн элемент. В худшем - пустой или неопознанный. Кто мешает создавать классы? p class=«p1», p class=«p2» и т.д. Хотя лучше давать более осмысленные названия.

Also, # > . > element > *

anonymous
()
Ответ на: комментарий от shrub

да. это. и оно работает в 4х браузерах у меня.

а как тогда можно?
если мне нужны разные р. везде классы лепить? так их мильен будет

dk-
() автор топика

class'ами делаются повторяющиеся элементы. Например, у всех одинаковых кнопочек должен быть один и тот же класс.

id'шниками делаются уникальные элементы или уникальные коррекции к типовым элементам. Например, футер который в 1м экземпляре на весь сайт. Или у тебя есть шесть одинаковых кнопочек, а нужно чтобы у третьей справа шрифт был болдом.

Вначале накладывается базовый класс, потом коррекции.

stevejobs ★★★★☆
()
Ответ на: комментарий от anonymous

не совсем понял.

т.е.
#team_info_1 p { font-size: 12px; color: #cccccc; }
#team_info_1 p2 { font-size: 14px; color: #cccccc; }
#team_info_1 p3 { text-indent: 1.5em; font-size: 12px; color: #cccccc; }

будет неверно
и надо делать 3 разных класса?

а можно делать так:

<p class=«blabla»> текст сообщения <p>

и класс бла бла описывать
?

dk-
() автор топика

кстати, названия p2, p3, pEtc - плохой стиль наименования элементов css. Правльнее называть description, mainText, bigHeading, и т.п. Но, ествественно, без фанатизма :)

drakmail ★★★★
()
#team_table p { font-size: 15px; color: #cccccc; }
.personal p { text-indent: 1.5em; font-size: 15px; color: #cccccc; }

если я в див team_table вкладываю, например, таблицу класса personal, то каким будет «р»?

<div id='team_table'>
<table class='personal'>
 <tr>
  <td>
    <p>foo</p><!-- #team_table p -->
  </td>
</tr>
</table>

но если надо поменять что-то

#team_table .personal p { font-size: 15px; color: #444444; }

<div id='team_table'>
<table class='personal'>
 <tr>
  <td>
    <p>foo</p><!-- color: #444444 -->
  </td>
</tr>
</table>

shrub ★★★★★
()
Ответ на: комментарий от dk-

Да, потому как эти правила запросто могут не сработать из-за того, что браузер не опознает элементы. Если, конечно, у тебя не XML (настоящий). В HTML5 ещё, вроде бы, были правила парсинга для неизвестных элементов, но на это полагаться как-то рановато.

Вообще говоря, лучше #id в CSS не использовать по возможности. Слишком геморройно из-за того, что его вес сильнее. Лучше классы же.

и класс бла бла описывать


В смысле? В CSS же и описываешь. Или в <style></style> документа. На определённый участок документа только пока сделать этого нельзя. В HTML5, опять-таки, должны быть scoped styles (или как-то так), но сейчас на это надеяться ещё рано.

anonymous
()
Ответ на: комментарий от dk-

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

.redtext {color: #ff0000; }
.bigsize {font-size: 4em; }

<p class="redtext bigsize">Hi</p>
shrub ★★★★★
()
Ответ на: комментарий от dk-

> выше чем ид в иерархии?

смотря как ты представляешь иерархию =)

имхо, для браузера проще думать в терминах «порядок отрисовки», чем «положения иерархии». Браузер смотрит на инструкции (которые написаны в html и css), берется за кисточку и рисует их один за другим.

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

//по сабжу: в треде уже ответили, у ид «положение в иерархии» выше, соответственно порядок отрисовки - позднее

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

HTML это вам не документ ВордЪ :)

/* Вероятно, ты в курсе, но на всякий случай напишу, мало ли кто прочитает :}

Стиль эта такая штука, которая ещё предполагает лёгкое его изменение в будущем. И будет потом redtext bigsize на самом деле зелёным и маленьким, например... :)
*/

anonymous
()

есть три заповеди:
тег {стиль:свойство;} - для определения стиля тега и всего документа (пример: BODY {стиль:свойство;})
id для одного приоритетного блока
class для множества элементов, подчиняющихся определённому классу стиля

Эти заповеди придумал я сам для себя, но вроде они не конфликтуют с руководством CSS

minakov ★★★★★
()
Ответ на: комментарий от anonymous

> Стиль эта такая штука, которая ещё предполагает лёгкое его изменение в будущем. И будет потом redtext bigsize на самом деле зелёным и маленьким, например... :)

/* если весь HTML генерится автоматически, то пофиг как называется стиль в коде результирующего HTMLя, всё равно его никто не смотрит ;) Можно генерить названия CSSа из названий переменных, если это так уж важно */

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Ну да, ну да. А код, конечно же, пишут гномы в рудниках с помощью магической пыльцы фей :)

anonymous
()
Ответ на: комментарий от anonymous

в коде теста

Button button = new StartButton();
assertEquals("Start button should be red!", button.getColor(),WebColors.GENERIC_RED);

при этом код самой кнопки:


public class StartButton extends WebButton() {

    public StartButton() {
        this.setColor(WebColors.GENERIC_RED);
    }

}

как видишь, если кто-то поправит конструктор кнопки, то тесты тут же взвоют «кнопочка перестала быть красной!»

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

В отсутствии необходимости всего этого, когда можно 1 раз назвать элемент нормальным именем. Придётся поднапрячься, фантазию применить :)

Deleted
()

Все просто

<div class="a"><div class="b"><div class="c"><div class="d"></div></div></div></div>

d > с > b > a
     и т. д.

Если какой-то из них не класс, а ид - без разницы.

moscwich
()
Ответ на: комментарий от dk-

НАДО использовать ТОЛЬКО классы

За редким исключением. Например, когда надо дать какое-то незначительное исключение одному конечному (!) элементу.
Или если ид есть - никуда не денешь (для js), элемент также один, ну не ставить же лишний класс...

moscwich
()
Ответ на: НАДО использовать ТОЛЬКО классы от moscwich

>НАДО использовать ТОЛЬКО классы
С чего такое смелое утверждение? В мануале четко написано: id и class можно использовать как хотите, но хорошим тоном является использование их максимально адекватно - уникальный элемент страницы - id, часто повторяющийся - class.

minakov ★★★★★
()
Ответ на: комментарий от dk-

Говоря о приведенном куске стиля, логично было бы вынести color в класс team_info, а внутри элемента этого класса уже плодить детей с id=«team_info_N» и уникальными свойствами.

thesis ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.