2009-11-17 11 views
7

Czy istnieje „niewidzialne” tag HTML (4), że mogę użyć do wyróżnienia CSSZnacznik neutralny względem układu dla CSS?

tag.myclass tag.mysubclass h1 { } 

bez dowolny wizualny wpływ na HTML renderowane?

Moje doświadczenie polega na tym, że mam obszary w formie, które należą do różnych grup. Ponieważ otwieram je w lightboksach (długa historia z operacjami DOM i takimi, nie do końca ważnymi), nie chcę polegać na zwykłym div class=x lub span class=y, aby stylować kolejne elementy, ponieważ musiałbym tutaj ustawić marginesy, , i tak dalej.

Etykietka do pakowania neutralna dla układu jest właśnie tym, czego potrzebuję w takich sytuacjach.

+0

Jeśli zdecydowałeś się na wypełnienie i marginesy bez klas i bez idg, to popełniłeś błąd. Celem tego tagu jest dokładnie to, o co prosisz. Tak więc, jeśli złamałeś cel tagu ... Sugeruję, żebyś to naprawił i użył. –

+1

Mmm, masz rację co do marginesów i paddingu, ale DIV jest elementem blokowym, a więc nie jest neutralny względem układu, nawet jeśli zostanie całkowicie zresetowany. Zawsze będzie starał się rozciągnąć do 100% szerokości domyślnie i tak dalej. –

+0

Myślę, że najlepiej jest pomyśleć o dodaniu opakowania DIV jako korzyści, którą można wykorzystać na swoją korzyść. Możesz pozycjonować elementy w prosty sposób, grupując je. DIVide and Conquer;) (przepraszam, nie mogłem się powstrzymać) – codeinthehole

Odpowiedz

5

Nie, nie ma.

(A to dlatego, że taki element nie pasowałby do reszty kodu HTML.) Jedynym powodem, dla którego DIV i SPAN wpływają na otaczający obszar, są odpowiednio elementy blokowe i inline. Jeśli potrzebujesz czegoś, co jest całkowicie niezależne, bezwzględnie (lub względnie) umieść je i nadaj mu wyższy indeks Z.)

+6

\ * kaszel \ * '' tag \ * kaszel \ *;) –

+8

Nie wskrzeszaj zmarłych!:) –

5

Jeśli chcesz grupować elementy, użyj znacznika div lub span jako elementu opakowania. Zastosuj do tego swój identyfikator lub klasę i odpowiednio ją wyprofiluj.

EDIT

Nie jest 'niewidoczny' tag - ale marginesy i dopełnienie można łatwo zresetować „margin: 0; wypełnienie: 0; '

-1

Możesz dodać do niego display: none;. To nie wyświetli tego (oczywiście).

+1

Nie, nie o to mi chodzi. Mam na myśli otaczający tag (opakowanie), który sam w sobie nie ma widoczności, ale w którym wszystkie elementy podrzędne są renderowane tak, jakby nie było tam opakowania. –

5

Podczas gdy wszystkie przeglądarki nadają domyślny styl wielu znacznikom HTML, w jego rdzeniu HTML tylko opisuje dane, nie formatuje tego.

Prawdopodobnie szukasz tagu DIV, ponieważ żadna przeglądarka nie nadaje mu domyślnego stylu.

2

Myślę, że chcesz <fieldset>.

+0

Zwykle przychodzi z niektórymi granicami w interfejsie z pamięci ... Mógłbym się mylić chociaż ... – Damovisa

+0

Tak, myślę, że zestaw pól nie jest "niewidzialny". Mimo to byłby to dobry tag do resetowania i "niewłaściwego używania" dla danego celu. +1. –

+1

fieldset zachowuje się jak div w najlepszym wypadku, ale może zachowywać się znacznie gorzej –

3

Powiedziałbym, że znacznik span jest tak neutralny, jak przychodzą. Nie sądzę, że istnieje jakaś przeglądarka, która stosuje margines lub dopełnienie, a tylko otacza zawartość.

+0

Nie jest to ogólnie zalecane, jeśli chcesz umieścić elementy div lub inne elementy blokowe w środku. http://stackoverflow.com/questions/5432397/how-to-display-a-div-element-inside-a-span chociaż wydaje się działać w mojej przeglądarce http://codepen.io/nueverest/pen/grVKVJ –

0

Podejrzewam, że można użyć znacznika <obiektu> bez typowych atrybutów do tego celu, ale nie testowałem go jeszcze dokładnie. Jest nawet w HTML5 (w przeciwieństwie do tagu FONT).

Powiązane problemy