ugrás a tartalomhoz

FF CSS erték nem szerepel a DOM-ban

carstepPCE · 2009. Jún. 17. (Sze), 14.20
Hi all,

Ext-Core

egy erdekes dologba futottam bele FF eseten.
Alapbol be van allitva egy blockquote elemnek, hogy display:none. Csodalatos modon nem is jelenik meg az elem. Viszont van egy scriptem, amely egy felette allo span-ra kattintva megjeleniti ez a blockquote elemet.
Ext.select(".helperDimension").on("click",function(){
          var elem = this.nextSibling.nextSibling;
          if ( elem.style.display == "" ) {
            elem.style.display = "none";
          } else {
            elem.style.display = "";
          }
        });
Ez a script egeszen addig jol mukodott, amig nem tettem alapbol a css display-t none-ra.
Meglepodve lattam a firebugban, hogy hiaba van display none-ra allitva az elem, ha a dom ertek tovabbra is ures (tehat elvileg latszania kellene).
Talalkozott mar valaki ilyennel? Javaslatok, hogy mit nezzek me'g meg?

-cs-
Sanyi
 
1

CSS

Poetro · 2009. Jún. 17. (Sze), 14.52
Inkább használj osztályokat mint a style elemmel küzdj. Könnyebben karbantartható, egyszerűbben cachelhető, és működik. Valamint biztos vagyok benne, hogy az általad használt JS keretrendszerben is van valami függvény egy elem elrejtésére / megjelenítésére, és használd inkább azt, mint a küzdést a stlye attributummal.
2

...

carstepPCE · 2009. Jún. 17. (Sze), 15.02
hat epp azaz, hogy osztalyt (jobban mondva szelektort hasznalok).
#right blockquote {display:none;}
es pont emiatt nem ertem a dolgot :)

vagy allapotvaltozas eloidezere kellene osztalyokat hasznalni, erre gondoltal?

-cs-
Sanyi
3

style

Poetro · 2009. Jún. 17. (Sze), 15.04
Akkor miért a style-ban keresed a display-t, miért nem az osztályok között?
4

css

carstepPCE · 2009. Jún. 17. (Sze), 15.15
Ezt most nem ertem! Nem adtam meg osztalyt eddig, hanem #right blockquote selectorral szukitettem le. Felteteleztem, azert a css style az megjelenik a dom-ban is, de ezek szerint nem.

Kozben megoldottam egy toggleClass -al, mivel mindegyiknek adtam egy hidden class-t.

ez lett belole
Ext.select(".helperDimension").on("click",function(){
          var elem = this.nextSibling.nextSibling;
          Ext.fly(elem).toggleClass('hidden');
        });
ahol a css class
.hidden {display:none;}
es ezt minden erintett blockquote elem megkap

Azert koszonom az utbaigazitast, most is tanultam valamit :-)

-cs-
Sanyi
5

display lehetséges értékei

bonga · 2009. Jún. 18. (Cs), 09.12
Ismereteim szerint a display elem lehetséges elemei a következők: none, block, inline, inline-block, inline-table, list-item, run-in, table, table-caption, table-cell, table-column, table-column-group, table-footer-group, table-header-group, table-row, table-row-group, inherit.
Ezek között nem szerepel az üres string, mint lehetséges funkció. Azt gondolom, hogy amikor egy elemnek a style.display = "" értékadást adod, akkor az nem változtat semmit. Szerintem az eredeti kódodnak így kellene kinéznie:

Ext.select(".helperDimension").on("click",function(){
          var elem = this.nextSibling.nextSibling;
          if ( elem.style.display != "none" ) {
            elem.style.display = "none";
          } else {
            elem.style.display = "block";
          }
});
6

block

carstepPCE · 2009. Jún. 18. (Cs), 10.37
Igen, ezzel en is tisztaban vagyok, de nem valtoztat semmit sem azon a tenyen, hogy a CSS-ben (selectorban) megadott ertek nem szerepel a DOM-ban. Probaltam getPropertyCSSValue -t is hasznalni, de az valahogy inkabb csak egy nem implementalt feature a FF-ben, mert mindig null-t adott vissza.

szerk. jut eszembe, ha nem adok meg erteket (jelen esetben ""), akkor az alapertelmezett erteket kapja az elem az pedig display:block a FF eseteben. Javitsatok ki ha tevedek

Ami viszont meg feltunt, hogy a selectorral megadott CSS ertek az valojaban inline syle-kent jelent meg a Firebugban.

-cs-
Sanyi