2010-04-01 8 views
8

zgodnie z identyfikatorami standardów HTML - atrybuty dowolnego znacznika HTML na stronie internetowej muszą być unikalne w dokumencie !?HTML: Wyświetlanie: brak to pozwala na wiele atrybutów ID o tej samej nazwie (gdy "ukryte")?

Czy ta reguła dotyczy również znaczników HTML, które zostały "wyłączone/ukryte" za pomocą: display: none?

Przykład:

<html> 
<body> 
<div id="one"></div> 
<div id="one" style="display:none;"></div> 
</body> 
</hmtl> 

Czy to ważne HTML czy nie. Pytanie brzmi: "display: none" = hidden Elements również "count/matter" w odniesieniu do reguły mającej tylko unikalne atrybuty ID na jednej stronie?

Dzięki Jan

Odpowiedz

13

To nie jest ważne znaczników. Sprawdzanie poprawności nie uwzględnia stylów CSS zastosowanych do elementów DOM.

Nie

nadal musi być tylko jeden element za ID, niezależnie od tego, czy jest to widoczne, czy nie, czy jest tyle innych w Z-stack, czy jest on umieszczony na zewnątrz rzutnia itp

2

Identyfikatory muszą być wyjątkowym ... aby zrobić inaczej flirtuje z katastrofą!

+1

Słabo sformułowane! Czuję, że można to łatwo zinterpretować ... Czy odpowiadasz na pierwszy sposób, w którym zadał pytanie ("Czy ta zasada dotyczy również znaczników HTML, które zostały" wyłączone/ukryte "za pomocą: display: none?") Lub drugi ("Czy jest to prawidłowy HTML czy nie?")? –

+0

Zgadnij, że to nie było tak/nie odpowiadające pytanie ... – Zoidberg

+0

Komentarz do prośby o korektę wystarczyłby panu. zrzędliwy dusiciel. – Zoidberg

1

Nie ma znaczenia, czy są one ukryte, czy nie, są jeszcze w dokumencie. Nawet jeśli są tworzone dynamicznie, nie powinny mieć tego samego identyfikatora. "nie jest prawidłowym znacznikiem" - Developer Art

0

Stylizacja elementu (nawet zastosowanie wyświetlania: brak) nie usuwa elementu z drzewa dokumentu.

1

Oczywiście, jak wspomnieli inni, nie jest to prawidłowe oznaczenie. Trzeba także pomyśleć o wyborze DOM tutaj. document.getElementById() wybiera jeden element z określonym ID, niezależnie od jego widoczności/wyświetlania w dokumencie.

0

Więc pytanie jest zrobić "display: none" = ukryte elementy również "count/materii" w odniesieniu do reguły

Tak. CSS nie wpływa na to, czy węzeł jest uważany za część dokumentu.

Możesz mieć tylko kilka elementów o tym samym ID, jeśli nie są zawarte w hierarchii tego samego dokumentu (lub funkcji DocumentFragment), np. kiedy właśnie użyłeś JavaScriptu do createElement nowy węzeł, ale nie appendChild ed go jeszcze do dokumentu.

Powiązane problemy