почему внутренний div не принимает стиль css? [Дубликат]

var filterHome = homes.filter(home =>
  return (home.price <= 999 &&
         home.num_of_baths >= 2.5 &&
         home.num_of_beds >=2 &&
         home.sqft >= 998));
console.log(filterHome);

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

@JGreig Пожалуйста, изучите его.

1754
задан Taryn 22 March 2017 в 17:14
поделиться

22 ответа

Для HTML 4 ответ технически:

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]) и могут быть за которым следует любое количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_»), двоеточия («:») и периоды («.»).

< / blockquote>

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

Атрибут id чувствительный к регистру в XHTML .

Как чисто практический вопрос, вы можете избежать определенных символов. Периоды, двоеточия и «#» имеют особое значение в селекторах CSS, поэтому вам придется избегать этих символов, используя обратную косу в CSS или двойную обратную косую черту в селекторе , переданном jQuery . Подумайте, как часто вам придется избегать символа в ваших таблицах стилей или кода, прежде чем вы сходите с ума по периодам и двоеточиям в ids.

Например, допустимо объявление HTML <div id="first.name"></div>. Вы можете выбрать этот элемент в CSS как #first\.name и в jQuery, например: $('#first\\.name').. Но если вы забудете обратную косую черту, $('#first.name'), у вас будет совершенно правильный селектор, который ищет элемент с id first, а также имеющий класс name. Это ошибка, которую легко упустить. В долгосрочной перспективе вы можете быть более счастливы, выбрав вместо этого id first-name (дефис, а не период).

Вы можете упростить свои задачи разработки, строго придерживаясь соглашения об именах. Например, если вы полностью ограничиваете символы нижнего регистра и всегда разделяете слова с помощью дефисов или подчеркиваний (но не на обоих, выберите один и никогда не используйте другой), тогда у вас есть простой для запоминания шаблон. Вы никогда не будете удивляться: «Было ли это firstName или FirstName?» потому что вы всегда будете знать, что вы должны ввести first_name. Предпочитаете верблюд? Тогда ограничьте себя этим, не дефисами или подчеркиваниями, и всегда, последовательно используйте либо верхний регистр, либо нижний регистр для первого символа, не смешивайте их.


Теперь очень неясная проблема заключалось в том, что хотя бы один браузер Netscape 6, неправильно обрабатывал значения атрибута id как чувствительные к регистру . Это означало, что если бы вы набрали id="firstName" в своем HTML (нижний регистр «f») и #FirstName { color: red } в вашем CSS (верхний регистр «F»), этот багги-браузер не смог бы установить цвет элемента в красный , Во время этого редактирования, апрель 2015 года, я надеюсь, вас не попросят поддержать Netscape 6. Рассмотрим эту историческую сноску.

1495
ответ дан nzn 19 August 2018 в 09:11
поделиться
  • 1
    Обратите внимание, что атрибуты класса и id являются чувствительными к регистру в XHTML, а все остальные атрибуты - нет. Эрик Мейер упомянул об этом в семинаре CSS, на котором я присутствовал. – John Topley 22 April 2009 в 11:35
  • 2
    Также обратите внимание, что если вы попытаетесь написать правило CSS для таргетинга элемента по идентификатору, а идентификаторы существ с числом, это не сработает. Вот досада! – Zack The Human 20 January 2010 в 01:53
  • 3
    Что касается '.' или ':' в ID с помощью jQuery, см. FAQ jQuery . Он содержит небольшую функцию, которая выполняет необходимое экранирование. – Wolfram 6 May 2010 в 11:18
  • 4
    Атрибут id - [ w3.org/TR/html4/struct/global.html#adef-id] (случай , чувствительный в HTML4) и должен начинаться с буквы (ограниченной от A до Z). Также обратите внимание, что ваш пример не должен делать цвет текста вашего элемента красным, поскольку ваш CSS ссылается на элемент с классом FirstName не на ваш id. – Augustus Kling 30 September 2011 в 08:55
  • 5
    Ошибка, отмеченная Августом, все еще присутствует. В вашем примере, если у вас есть id="firstName" в HTML 4 или HTML 5 и #FirstName { color: red } в CSS, только багги-браузер будет установить цвет элемента в красный. – Stephen Booher 26 January 2012 в 19:15

jQuery обрабатывает любое допустимое имя ID. Вам просто нужно избежать метасимволов (т. Е. Точек, точек с запятой, квадратных скобок ...). Это похоже на то, что JavaScript имеет проблему с кавычками только потому, что вы не можете писать

var name = 'O'Hara';

Селекторы в jQuery API (см. Нижнюю ноту)

60
ответ дан Álvaro González 19 August 2018 в 09:11
поделиться

Чтобы ссылаться на id с периодом в нем, вам нужно использовать обратную косую черту. Не уверен, что это то же самое для дефиса или подчеркивания. Например: HTML

<div id="maintenance.instrumentNumber">############0218</div>

CSS

#maintenance\.instrumentNumber{word-wrap:break-word;}
16
ответ дан Anthony 19 August 2018 в 09:11
поделиться
  • 1
    Дефисам и подчеркиваниям обычно не нужно избегать. Однако исключение из этого заключается в том, что дефисс появляется в начале идентификатора и за ним следует другой дефис (например, \--abc) или цифра (например, \-123). – MrWhite 14 November 2013 в 03:25

Дефисы, подчеркивания, периоды, двоеточия, числа и буквы действительны для использования с CSS и JQuery. Следующее должно работать, но оно должно быть уникальным на всей странице, а также должно начинаться с буквы [A-Za-z].

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

<html>
<head>
<title>Cake</title>
<style type="text/css">
    #i\.Really\.Like\.Cake {
        color: green;
    }
    #i\:Really\:Like\:Cake {
        color: blue;
    }
</style>
</head>
<body>
    <div id="i.Really.Like.Cake">Cake</div>
    <div id="testResultPeriod"></div>

    <div id="i:Really:Like:Cake">Cake</div>
    <div id="testResultColon"></div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            var testPeriod = $("#i\\.Really\\.Like\\.Cake");
            $("#testResultPeriod").html("found " + testPeriod.length + " result.");

            var testColon = $("#i\\:Really\\:Like\\:Cake");
            $("#testResultColon").html("found " + testColon.length + " result.");
        });
    </script>
</body>
</html>
25
ответ дан blacksun1 19 August 2018 в 09:11
поделиться

для HTML5

Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ. Значение не должно содержать пробелов.

По крайней мере один символ, пробелы.

Это открывает дверь для допустимых вариантов использования, таких как использование акцентированных символов. Это также дает нам больше боеприпасов, чтобы стрелять в ногу, поскольку теперь вы можете использовать значения id, которые могут вызвать проблемы с CSS и JavaScript, если вы не будете очень осторожны.

8
ответ дан Kanishka Panamaldeniya 19 August 2018 в 09:11
поделиться

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

9
ответ дан lstg 19 August 2018 в 09:11
поделиться

Вы можете технически использовать двоеточия и периоды в атрибутах id / name, но я настоятельно рекомендую избегать обоих.

В CSS (и нескольких библиотеках JavaScript, таких как jQuery), как период, так и двоеточие имеют специальные и вы столкнетесь с проблемами, если не будете осторожны. Периоды - это селектор классов, а двоеточия - псевдоселекторы (например, «: hover» для элемента, когда мышь над ним).

Если вы укажете элементу id «my.cool:thing», , ваш CSS-селектор будет выглядеть так:

#my.cool:thing { ... /* some rules */ ... }

Что действительно говорит: «Элемент с идентификатором« мой », класс« классный »и псевдо-селектор« вещь », в CSS-говорить.

Придерживаться AZ любого случая, цифр, подчеркиваний и дефис. И, как сказано выше, убедитесь, что ваши идентификаторы уникальны.

Это должно быть вашей первой заботой.

130
ответ дан Michael Thompson 19 August 2018 в 09:11
поделиться
  • 1
    Вы можете использовать двоеточия и периоды - но вам нужно будет избежать их, используя двойные обратные косые черты, например: $ ('# my \\. Cool \\: thing') или экранирование переменной: $ ('#' + id.replace (/ \ ./, '\\.'). replace (/ \: /, '\\:')) groups.google.com/group/jquery-en/browse_thread/thread/… – joeformd 3 December 2009 в 11:41
  • 2
    Почему не цифры; почему просто A-Z? Числа - очень полезные идентификаторы при обращении к элементам, связанным с данными, которые связаны с числом, если вы не начинаете с номера. – cori 2 May 2011 в 17:35
  • 3
    Просто FYI, черточки являются технически дефисами. Значок минус не находится в наборе символов ASCII. en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes – Tony 8 July 2011 в 19:31
  • 4
    Если у вас есть эти символы (., :) в ids и не могут их удалить (cough ... Sharepoint), вы можете обойти это в CSS с помощью селекторов атрибутов вместо селекторов идентификаторов, например. [id='my.cool:thing'], однако этот селектор будет иметь более низкую специфичность, чем селектор id, что может вызвать другие проблемы. – Faust 7 June 2013 в 08:36
  • 5
    Старый, я знаю, но обновленный, чтобы включать числа и backpedal на дефисах – Michael Thompson 30 December 2013 в 17:03

HTML5: допустимые значения для ID & amp; Атрибуты класса

Как и в случае с HTML5, единственными ограничениями на значение идентификатора являются:

  1. должны быть уникальными в документе
  2. не должны содержать любые символы пробела
  3. должны содержать хотя бы один символ

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

So значение может быть все цифры, всего одна цифра, только знаки пунктуации, включают специальные символы, что угодно. Просто нет пробелов. Это очень отличается от HTML4.

В HTML 4 значения идентификатора должны начинаться с буквы, которая затем может следовать только буквами, цифрами, дефисами, символами подчеркивания, двоеточиями и периодами.

В HTML5 они действительны:

<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>

Просто имейте в виду, что использование чисел, знаков препинания или специальных символов в значении идентификатора может вызвать проблемы в других контекстах (например, CSS, JavaScript, регулярное выражение ).

Например, в HTML5 допустим следующий идентификатор:

<div id="9lions"> ... </div>

Однако это недействительно в CSS:

Из спецификации CSS2.1:

4.1.3 Символы и регистр

В CSS, идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) могут содержать только символы [a-zA-Z0-9] и символы ISO 10646 U + 00A0 и выше, плюс дефис (-) и подчеркивание (_); они не могут начинаться с цифры, двух дефисов или дефиса, за которым следует цифра .

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


Ссылки W3C

HTML5

3.2.5.1 Атрибут id

Атрибут id указывает уникальный идентификатор его элемента (ID).

Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ. Значение не должно содержать пробелов.

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

3.2.5.7 Атрибут class

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

Классы, которым присвоен элемент HTML к нему относятся все классы, возвращаемые, когда значение атрибута класса разбивается на пробелы. (Дубликаты игнорируются.)

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

33
ответ дан Michael_B 19 August 2018 в 09:11
поделиться

Строго он должен соответствовать

[A-Za-z][-A-Za-z0-9_:.]*

Но у jquery, похоже, проблемы с двоеточиями, поэтому лучше избегать их.

51
ответ дан nasmorn 19 August 2018 в 09:11
поделиться
  • 1
    не должно быть [A-Za-z] [-A-Za-z0-9 _ :.] *, поскольку все после первой буквы является необязательным («любое число» включает в себя нуль, «может» означает «означает» , не требуется "). – foo 7 January 2011 в 06:09

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

проект спецификации HTML 5 ослабляет правила для id и name: теперь они просто непрозрачные строки, которые не могут содержать пробелы.

28
ответ дан pdc 19 August 2018 в 09:11
поделиться

Из спецификации HTML 4 :

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), и за ней может следовать любая количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_»), двоеточия («:») и периоды («.»).

Общей ошибкой является использование идентификатора, начинающегося с цифры.

195
ответ дан Peter Hilton 19 August 2018 в 09:11
поделиться
  • 1
    Обратите внимание, что HTML5 позволяет гораздо больше, чем HTML4, например, 456bereastreet.com/archive/201011/… и w3.org/TR/html5/elements.html#the-id-attribute – Mr Shark 30 November 2010 в 09:33
  • 2
    IE6 не поддерживал идентификатор, начинающийся с подчеркивания, но он все равно мертв. – rahmanisback 3 March 2012 в 14:00
  • 3
    @rahmanisback относительно IE6, можно было бы так подумать, но сейчас я заканчиваю предложение для банка, и они настаивают на том, что любое приложение, которое поставщик разрабатывает, запускается в IE6. Это для 30 000 пользователей. Черт, если бы мы могли просто заставить их обновлять свои браузеры на всех этих рабочих столах, это могло бы просто помочь безработице. – Karl 13 September 2012 в 14:50
  • 4
    @ Карл. Мне жаль это слышать. Сделайте все свои усилия, чтобы предупредить об проблемах безопасности IE6. Однако IE7 скоро станет новым IE6, поэтому да, кажется, наша судьба в этой отрасли устраняет ошибки прошлого прошлого. – rahmanisback 14 September 2012 в 07:25
  • 5
    @MrShark Вторая ссылка сломана; Новая ссылка – SWdV 14 June 2015 в 14:34

Кроме того, никогда не забывайте, что идентификатор уникален. После использования значение ID больше не может появляться в любом месте документа.

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

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

12
ответ дан pimvdb 19 August 2018 в 09:11
поделиться

В HTML5 идентификатор не может начинаться с числа, например. id- "1kid", и они не могут иметь пробелы (id = "Some kind")

-4
ответ дан Sébastien 19 August 2018 в 09:11
поделиться
  • 1
    Это не верно. См. здесь : «Нет никаких других ограничений на то, какую форму может принимать идентификатор; в частности, идентификаторы могут состоять только из цифр, начинаться с цифры, начинаться с подчеркивания, состоять только из знаков пунктуации и т. д. & quot; – Andrew Barber 16 September 2014 в 20:22

HTML5

Имея в виду, что идентификатор должен быть уникальным, т.е. в документе не должно быть нескольких элементов с одинаковым значением id.

Правила содержимого ID в HTML5 (кроме уникальности):

This attribute's value must not contain white spaces. [...] 
Though this restriction has been lifted in HTML 5, 
an ID should start with a letter for compatibility.

Это Спецификация W3 о ID (frnn MDN):

Any string, with the following restrictions:
must be at least one character long
must not contain any space characters
Previous versions of HTML placed greater restrictions on the content of ID values 
(for example, they did not permit ID values to begin with a number).

Дополнительная информация:

18
ответ дан Sergio 19 August 2018 в 09:11
поделиться

alphabets-> caps & amp; small digits-> 0-9 special chars-> ':', '-', '_', '.'

формат должен начинаться с '.' или алфавит, за которым следует либо специальный символ большего количества алфавитов, либо цифр. значение поля id не должно заканчиваться на '_'. Кроме того, пробелы не допускаются, если они предоставляются, они рассматриваются как разные значения, что недействительно в случае атрибутов id.

-2
ответ дан Shashank N. Pandey 19 August 2018 в 09:11
поделиться

Из спецификации HTML 4 ...

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0 -9]), дефисы («-»), подчеркивания («_»), двоеточия («:») и периоды («.»).

EDIT: d'oh! Снова побегите к кнопке!

13
ответ дан Steve Morgan 19 August 2018 в 09:11
поделиться

Любое альфа-числовое значение и «-» и «_» действительны. Но вы должны завести имя id любым символом между A-Z или a-z.

5
ответ дан Tazwar Utshas 19 August 2018 в 09:11
поделиться

Уникальный идентификатор для элемента.

В документе не должно быть нескольких элементов с одинаковым значением id.

Любая строка со следующими ограничениями:

  1. должен иметь длину не менее одного символа
  2. не должен содержать пробелов: U + 0020 пробел U + 0009 ТАБЛИЦЫ ХАРАКТЕР (вкладка) U + 000A LINE FEED (LF) U + 000C FORM FEED (FF) U + 000D CARRIAGE RETURN (CR)

Использование символов, кроме ASCII letters and digits, '_', '-' and '.', может вызвать проблемы совместимости, поскольку они не разрешены в HTML 4. Хотя это ограничение было снято в HTML 5, идентификатор должен начинаться с буквы для совместимости.

6
ответ дан The_Lone_Devil 19 August 2018 в 09:11
поделиться

HTML5:

избавляется от дополнительных ограничений атрибута id , см. здесь . Единственные требования, оставленные (кроме единственного в документе):

  1. значение должно содержать хотя бы один символ (не может быть пустым)
  2. t содержит любые пробельные символы.

PRE-HTML5:

Идентификатор должен соответствовать:

[A-Za-z][-A-Za-z0-9_:.]*
  1. Необходимо начать с символами AZ или az
  2. Может содержать - (дефис), _ (подчеркивание), : (двоеточие) и . (период)

, но следует избегать : и . beacause:

Например, идентификатор может быть помечен как «ab: c» и указан в таблице стилей как #ab: c, но также как и это id для элемента, это может означать id «a», класс «b», псевдоселектор «c». Лучше избегать путаницы и избегать использования. и: вообще.

39
ответ дан vsync 19 August 2018 в 09:11
поделиться
  1. Идентификаторы лучше всего подходят для наименования частей вашего макета, поэтому не должны указывать одинаковое имя для идентификатора и класса
  2. .
  3. ID позволяет использовать буквенно-цифровые и специальные символы
  4. , но избегать использования # : . * ! символы
  5. недопустимые пробелы
  6. не начинаются с цифр или дефиса, за которым следует цифра
  7. с учетом регистра
  8. с использованием идентификатора селектора быстрее, чем использование селекторов классов
  9. использовать дефис «-» (подчеркивание «_» также может использовать, но не полезно для seo) для длинного имени класса CSS или Идентификатора правила
  10. Если a правило имеет селектор идентификаторов в качестве его селектора ключей, не добавляйте имя тега в правило. Поскольку идентификаторы уникальны, добавление имени тега будет бесполезно замедлять процесс сопоставления.
  11. В HTML5 атрибут id может использоваться для любого элемента HTML, а в HTML 4.01 атрибут id не может использоваться с: <base>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.
6
ответ дан Web Designer cum Promoter 19 August 2018 в 09:11
поделиться
  • 1
    «подчеркивание» также может использовать, но не полезно для seo ». С каких пор поисковые системы проявляют интерес к именам классов CSS или идентификаторов? – Nick Rice 7 May 2016 в 16:55

Нет пробелов, должно начинаться, по крайней мере, с символа от a до z и от 0 до 9.

3
ответ дан Wembo Mulumba 19 August 2018 в 09:11
поделиться
0
ответ дан a.miadian 30 October 2018 в 21:35
поделиться