css na jednu stránuku webu

Ernst
05. říj 2016 16:22 #128635
Jak v css mohu ovlivnit jen jednu staránku webu.
Když dám
body#tmpl-9 id939 {
}
nefunguje mi již za to nic přidat, třeba
body#tmpl-9 id939 #flowers {display:none;
}

je již nefunkční,. Jde to nebo jen někde dělám chybu?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
05. říj 2016 16:38 #128636
A to id939 je co? pokud je to nějaká třída, chybí Vám na začátku tečka, pokud je to id, chybí tam křížek.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
05. říj 2016 20:27 #128641
takhle mě to tam napíše developer tool
když na této řádce vytvořím new style rule.

tedy nevypisuji to ručně

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od karel
05. říj 2016 21:45 #128643
Při sestavování CSS selektorů záleží na vnořenosti html elementů a případně na jejích nastavených atributech.

CSS Selektor body#tmpl-9 id939 by platil pro html:
<body ... id="tmpl-9" >
       ...
             <id939>
                     ....
            </id939>
     ....
a v druhém případě by muselo být HTML:
<body ... id="tmpl-9" >
   ...
       <id939>
               ...
                   <libovolny_html_tag ... id="flowers" > ....
               ...
     </id939>
....


Co máte v kódu Vy, víte Vy ...

Znáte-li řešení, sdělte ho - pomůžete ostatním při řešení stejného problému, i případný "rádce" bude vědět, poradil-li správně nebo špatně.
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
07. říj 2016 11:09 #128672
Děkuji, díky pokusům jsem to již taky pochopil. stačí napsat:
.id939{display:none;}
to body#tmpl-9 id939 není třeba vůbec uvádět

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Martens
07. říj 2016 15:34 #128675
Ahoj, fajn, že jsi to pochopil, jenže to vypadá, že tam máš stále stejnou chybu, jak psal Cony.

V kódu níže máš definici pro element třídy id939 (s tečkou)

.id939{display:none;}


Zatímco tady se odkazuješ na element id939 (tedy na něco podobného jako je tag <h1>, <p>, atp.) a tedy to pak ovlivní (či neovlivní) v kódu zcela něco jiného a tedy obě ukázky css kódu jsou zcela odlišné.

to body#tmpl-9 id939 není třeba vůbec uvádět


Jen pro upřesnění:
body#tmpl-9 .id939{display:none;}
by měl ovlivnit jen instanci elementu třídy .id939 jen pokud bude vnořená v elementu <body> s id=tmpl-9, zatímco
.id939{display:none;}
ovlivní element třídy id939 kdekoliv na stránce. Tolik jen pro upřesnění k tomu odstranění body#tmpl-9.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
07. říj 2016 20:05 - 07. říj 2016 20:05 #128678
jasně, to chápu, ale body je hned na začátku stránky jako nejvyšší úroveň a to IDxxx určuje, na které stránce jsem. jinak v css stránku rozlišit neumím.

a kyž použiji třeba
body#tmpl-9 id101 .mojetrida{
    display: none;
}
tak se mojetrida neskryje, to znamená že body#tmpl-9 id101 má v css nějaká omezení

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
07. říj 2016 20:18 #128679
jasně, to chápu, ale body je hned na začátku stránky jako nejvyšší úroveň a to IDxxx určuje, na které stránce jsem. jinak v css stránku rozlišit neumím.

a kyž použiji třeba
body#tmpl-9 id101 .mojetrida{
    display: none;
}
tak se mojetrida neskryje, to znamená že body#tmpl-9 id101 má v css nějaká omezení

v podstatě mohu dát také
body .mojetrida{
    display: none;
}
ale jak tam mám dát id101, které rozlišuje stránku

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
07. říj 2016 20:21 #128681
v podstatě mohu dát také
body .mojetrida{
    display: none;
}
ale jak tam mám dát id101, které rozlišuje stránku

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Martens
07. říj 2016 20:27 #128682
Zkus tu vložit kus kódu nebo odkaz, kde figuruje to id101 .... zase přesně jak psal Cony ..... zřejmě to vypadá, že nemáš jasno, jestli je to něco jako <id101> nebo něco jako <div class=id101> ... podle toho by pak vypadal zápis v css.

Pokud by to bylo <id101>, tak zápis v css by byl
body id101 .mojetrida
{
  display: none
}

pokud by to byl např. <div class=id101>, tak v css bude zápis
div .id101 .mojetrida
{
  display: none;
}

Ale to už se teoretizuje až moc ...kus kódu nebo odkaz by fakt pomohl.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
07. říj 2016 20:59 - 07. říj 2016 21:04 #128684
ani jedno z výše uvedených nefunguje

php pošle prohlížeči
<body id="tmpl-9 id101" data-tablet-width="940" data-mobile-width="580" data-bg="1" class="index" ng-init="visible = false" style="position: static;" cz-shortcut-listen="true">

vidět je to v www.diochi.cz

ve zdroji jsem našel jen
<body id="tmpl-9 id101"      data-tablet-width="940" data-mobile-width="580" data-bg="1"
class="index"ng-init="visible = false">

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Martens
07. říj 2016 21:48 #128685
No první, co tam je a co se mi nelíbí a příjde fakt divné , tak je konstrukce <body id="tmpl-9 id101"

Řetězit třídy jde, ale řetězit identifikátory id? To tady vidím poprvé .....

Pokud tam to id101 dáváš scriptem, tak to zkus dát ne do id, ale do class - tedy asi takto
<body id="tmpl-9" data-tablet-width="940" data-mobile-width="580" data-bg="1" class="id101 index" ng-init="visible = false" style="position: static;" cz-shortcut-listen="true">

Jde to? Pokud ano, tak pak by css bylo asi tak nějak :
body#tmpl-9.id101.index .mojetrida
{
   display: none;
}

a mělo by fungovat i toto
body#tmpl-9.id101 .mojetrida
{
   display: none;
}

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
07. říj 2016 22:22 - 07. říj 2016 22:28 #128687
ani jedno nefunguje, já už taky vyzkoušel nespočet variant.
vždyť si to zkus přímo na tom webu

třeba
body#tmpl-9.id101.index  section#gkContent {
    display: none !important;
}

já nevím, co tam to id101 dává. joomla si ne, tak možná nějaká komponenta - K2 nebo ARTIO JoomSEF a samozřejmě i šablona

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Martens
07. říj 2016 22:34 - 07. říj 2016 22:36 #128688
Podle specifikace HTML5 by ID nemělo obsahovat mezeru a musí být unikátní v celém HTML kódu dané stránky.

Ale šlo by to oblbnout takto :
jsfiddle.net/mlasevic/0akx0ar5/

Místo toho prvního <div> si dej <body> pro větší názornost.

Je to sice funkční řešení, ale stále se nemůžu ubránit pocitu, že více jmen, oddělených mezerou v identifikátoru ID je proti pravidlům CSS a je to standardně použitelné jen v třídách.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Martens
07. říj 2016 22:41 #128689
Tak přesně tohle použij (vyzkoušeno přímo na Tvé stránce)::

body[id="tmpl-9 id101"] #gkContent {
display: none;
}
Poděkovali: Ernst

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.