Jump to content
  • 0

Идентификатор или класс?


SLaVeRS9
 Share

Question

Объясните пожалуйста, нигде найти не могу найти толкового объяснения. А именно: почему параметры основных блоков, таких как footer, main, header советуют тоже через классы задавать? почему id - это не правильно\не эстетично!?
 

"CSS

    Не использовать #id для описания стилей блока.
    Почему-то одна из самых часто встречаемых ошибок -- это использование идентификатора вместо класса, для описания силей блока. Не надо этого делать.
    Давай мы с тобой определимся раз и на всегда с двумя простыми решениями:
    .class-name -- имена класов используются для того что бы описать стили блока. В 99,9% случаев программист не будет менять установленные верстальщиком имена классов.
    #id -- идентификаторы используются в JavaScript для того что бы передать в скрипт элемент и использовать его. Программист имеет право изменять имя идентификатора на своё усмотрение.
    Возьми за правило не использовать в вёрстке #id. В 99,9% случаев ты сможешь обойтись классами. 0,01% остаётся на уникальные ситуации и вероятность того что тебе такая попадётся, сам понимаешь, очень мала."

 

Edited by SLaVeRS9
Link to comment
Share on other sites

Recommended Posts

  • 0

Только поэтому? "Почему-то одна из самых часто встречаемых ошибок -- это использование идентификатора вместо класса, для описания силей блока. Не надо этого делать." - почему тогда так критично? тем более описаные мной блоки по сути своей являются единственными и не повторяются, что удобней давать им свойства идентификатором

 

А зачем? Я не вижу смысла ставить id, если можно поставить класс. А id можно оставить для javascript.

Link to comment
Share on other sites

  • 0

Тоже видел это мнение, решил подумать САМ и прийти к выводу.
Я считаю что для основных блоков лучше использовать id. На них никто никогда не будет вешать js.
Вообще эти рекомендации для работы в команде. Если сам все разрабатываешь, эти советы вообще не нужны. А плюсы id для переопределения стилей. не потребуется использовать !important...

Link to comment
Share on other sites

  • 0

А плюсы id для переопределения стилей. не потребуется использовать !important

!important вообще абсолютное зло. Если у вас в стилях потребовался !important, значит у вас что-то не так со стилями.
Link to comment
Share on other sites

  • 0

И все же? Пока никаких убедительных доводов

А их и нет в том смысле в котором многие ждут. Можно всю верстку утыкать id и все будет работать точно так же как и с классами.  Вся логика использования классов заключается в порядке. То есть если можно использовать низший по значимости атрибут то надо использовать низший с точки зрения порядка.

Link to comment
Share on other sites

  • 0

Довод против id всего один: поиск по id является наибыстрейшим методом нахождения элемента на странице в JS. Программист, который пишет скрипты для сайта не должен думать о том, что он может повлиять на отображение сайта если он, например, создаст элемент на странице с каким-то id. Иногда требуется клонировать какой-то элемент на странице, а т.к. id должен быть уникальным, то такой элемент клонировать будет нельзя (стили поведут себя непредсказуемо).

Да можно сказать что-то типа: "я делаю сайт один, от и до, без команды, я и программист и верстальщик в одном лице". Но надо понимать, что вы отдадите сайт потом в пользование клиенту. Когда-то сайту потребуется доработка, и у человека, который будет дорабатывать страницу возникнет геморрой. А всё потому, что вам впадлу было точку вместо шарпа написать в CSS. Или потому, что вы не знаете как по-другому повысить специфичность правил и перекрыть какие-то стили.

Думать надо о коллегах короче.

  • Like 1
Link to comment
Share on other sites

  • 0
Но надо понимать, что вы отдадите сайт потом в пользование клиенту. Когда-то сайту потребуется доработка, и у человека, который будет дорабатывать страницу возникнет геморрой.

По  вещам которые пишу из своего ОПЫТА, лично меня никак не переубедить.  Я не считаю это важной ошибкой, а вы там как хотите.
Работает, никто не жаловался. Лишнюю работу не делаю, т..к никто не проверяет и не доплачивает. Если рабить на буржунет, то возможно можно уже в такие тонкости вдаваться.

Link to comment
Share on other sites

  • 0

Мнение знакомого бэкграундовщика )

 

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

 

Link to comment
Share on other sites

  • 0
Сделали тяп-ляп, работает и ладно... Чтож, я только за. Чем больше таких как вы, тем ценнее такие как я 

Все приходит с опытом и у всех он складывается по-разному. Сводить всех людей к одному, большая ошибка.
Ценность совсем в другом, тот кто работает долго на фрилансе то прекрасно понимает в чем....
Вообще хз, мне больше не чем что-ли заняться чем впустую трепаться в этой теме :)

Link to comment
Share on other sites

  • 0
Думать надо о коллегах короче.
 

+

 

Сделали тяп-ляп, работает и ладно... Чтож, я только за. Чем больше таких как вы, тем ценнее такие как я

+

 

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

Надоели уже, честное слово. Что здесь, что на яваскрипт.ру.

Слушайте матерых разработчиков и будет вам счастье.

 

Если вы не видите всей картины, это не означает, что ее нет.

Edited by nerv
  • Like 1
Link to comment
Share on other sites

  • 0

Так объясните пожалуйста)

 

Думать надо о коллегах короче.
 

+

 

Сделали тяп-ляп, работает и ладно... Чтож, я только за. Чем больше таких как вы, тем ценнее такие как я

+

 

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

Надоели уже, честное слово. Что здесь, что на яваскрипт.ру.

Слушайте матерых разработчиков и будет вам счастье.

 

Если вы не видите всей картины, это не означает, что ее нет.

 

 

вот с этим как?

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

 

Link to comment
Share on other sites

  • 0
Так объясните пожалуйста)

забудьте при стилизации об id

 

чем засорять скрипты хтмлом

когда ты подрастешь еще немного, узнаешь про шаблонизаторы

 

но зачем вообще может понадобиться скопировать элемент, который по определению должен быть единственным на странице?
Если вы не видите всей картины, это не означает, что ее нет.
 
Link to comment
Share on other sites

  • 0
Слушайте матерых разработчиков и будет вам счастье.

Ахахахах. Матерщик))) Я пишу из своего опыта. Может я не разбираюсь в js. Зато знаю очень хорошо много cms, с которым работаю не один год. Зачем мне тебя слушать, если повторюсь есть ЛИЧНЫЙ опыт, который я не собираюсь обменивать на таких как ты.

Матерщик никогда не будет расхваливать себя. Все С Вами ясно короче. :rofl:

забудьте при стилизации об id

Не слушай. А поработай сам, и поймешь как лучше.

Edited by post-rock
Link to comment
Share on other sites

  • 0

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

Просвятите в последний вопрос, тогда, пожалуйста

   

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

 

  

 

 

 

Так объясните пожалуйста)

забудьте при стилизации об id

 

 

 

чем засорять скрипты хтмлом

когда ты подрастешь еще немного, узнаешь про шаблонизаторы

 

 

 

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

 

 

Если вы не видите всей картины, это не означает, что ее нет.
 

 

Link to comment
Share on other sites

  • 0
Я пишу из своего опыта

Который с гулькин х** нос

 

Зато знаю очень хорошо много cms

Видимо, только названия знаешь

 

Зачем мне тебя слушать, если повторюсь есть ЛИЧНЫЙ опыт, который я не собираюсь обменивать на таких как ты.

Если ты не заметил, то я с тобой не разговаривал вообще в этой теме.

 

Матерщик никогда не будет расхваливать себя

А если бы ты проявил внимательность и/или включил мозг, то понял, что я говорил не о себе. 

Link to comment
Share on other sites

  • 0

Друзья, я предлагаю вам закончить перебранку. Следующий ответ в таком духе закончится наказанием одного из вас. nerv, хочу напомнить. что у нас даже завуалированный мат запрещён. Будьте пожалуйста повежливее друг с другом. Это и к вам, post-rock, относится.

Link to comment
Share on other sites

  • 0

Довод против id всего один: поиск по id является наибыстрейшим методом нахождения элемента на странице в JS. Программист, который пишет скрипты для сайта не должен думать о том, что он может повлиять на отображение сайта если он, например, создаст элемент на странице с каким-то id. Иногда требуется клонировать какой-то элемент на странице, а т.к. id должен быть уникальным, то такой элемент клонировать будет нельзя (стили поведут себя непредсказуемо).

Да можно сказать что-то типа: "я делаю сайт один, от и до, без команды, я и программист и верстальщик в одном лице". Но надо понимать, что вы отдадите сайт потом в пользование клиенту. Когда-то сайту потребуется доработка, и у человека, который будет дорабатывать страницу возникнет геморрой. А всё потому, что вам впадлу было точку вместо шарпа написать в CSS. Или потому, что вы не знаете как по-другому повысить специфичность правил и перекрыть какие-то стили.

Думать надо о коллегах короче.

почему во всех книгах учат применять идентификатор, а не класс?? 

Link to comment
Share on other sites

  • 0
!important вообще абсолютное зло. Если у вас в стилях потребовался !important, значит у вас что-то не так со стилями.

Ну ... я бы не стал сразу с плеча рубить... Не совсем зло. Как то пользовался сторонними библиотеками, которые подгружали стили извне...  Можно было бы стили переопределять для них в теле, или строить длинные наследственные связи, для их переопределения. Чтобы вконец не путаться - для таких правок коротко и просто !important... Не я же виноват, что разработчики не предусмотрели, что их стили переопределять придётся

 

 

 

почему во всех книгах учат применять идентификатор, а не класс?? 

Да потому что им проще написать не класс а ID - для убедительности . Как звучит ИДЕНТИФИКАТОР)) а класс - коротко и просто: класс...

Это потом уже понимание приходит...  

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

 

Пример - есть элемент с  id = "myId", при наведении хочу чтобы некий элемент   с id = "myIdTarget"  исчез...

Проще получить ID нежели класс, так как это атрибут. удобно.  в jQuery  

  $id = $(this).attr("id");$("#"+$id+"Target").hide()

Ещё минус -  Есть такая ошибка у многих начинающих разработчиков -  На вставляют одинаковых ID, а потом вопросы задают, почему у них код работает не так как нужно....   

 

 

Каюсь, так как я не совсем верстальщик , и не привык долго раздумывать над селекторами...  Возникла ситуация - пользователь мог через визивиг добавлять фото с обтеканием по разному краю, для них нужно было разные отступы делать. 

Можно было визивиг подпилить, но я вышел просто -

.content img[style*="float: left"]  {      ....  }

Согласен - это не красиво, но - почему бы и нет?

 

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

Edited by Николя223
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