html-kod fungerar lokalt men inte på servern

Tråden skapades och har fått 13 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2011-12-05 17:43

Hej!

Ett väldigt skumt problem, jag har koden

<span class="bold">På gång!</span> <span class="italic">...</span>

och den visar rätt när jag kollar på filen lokalt, alltså "På gång! Ny bok!".
Men när jag lägger upp filen på servern, så är hela raden kursiv.

Jag har tömt cache femtielva gånger, tagit bort filen på servern och laddat upp igen, sparat om filen på servern, bytt namn på filen.

Problemet visas både i Safari 5.1.1 och Firefox 8.0.1.

Något som har förslag på lösning?

  • Medlem
  • Stockholm
  • 2011-12-05 18:11

Det verkar som om one.com-servern har en cache. Jag laddade upp allt utan att ha en undermapp (behövde ett godkännande från kunden) och nu fungerar det. Skönt!

  • Medlem
  • Örebro
  • 2011-12-05 19:20

Nu är det rätt många år sedan jag pysslade med HTML. Men jag undrar vad det är för fel på:

<b>På gång!</b> <i>Ny bok!</i>

alternativt

<strong>På gång!</strong> <em>Ny bok!</em>

Span-taggarna behöver du väl knappast för det du är ute efter och de underlättar ju inte heller läsningen av koden.

  • Medlem
  • Stockholm
  • 2011-12-05 19:31
Ursprungligen av jahve:

Nu är det rätt många år sedan jag pysslade med HTML. Men jag undrar vad det är för fel på:

<b>På gång!</b> <i>Ny bok!</i>

alternativt

<strong>På gång!</strong> <em>Ny bok!</em>

Span-taggarna behöver du väl knappast för det du är ute efter och de underlättar ju inte heller läsningen av koden.

Tiderna förändras och det gör html med. Nu för tiden används CSS istället. span är en "tom" tagg, som man kan lägga vilka värden som helst i.

  • Medlem
  • Örebro
  • 2011-12-05 20:39

Alltså, jag fattar att man kör span om man vill skapa id:n eller classer och styra dessa med en central stilmall. Typ <span class="uppmaning"> och sedan knyter den class:en till kursiv text. Men att skriva in CSS:en direkt i span-taggen verkar... inte optimalt.

  • Skribent
  • Sollentuna
  • 2011-12-06 21:21
Ursprungligen av jahve:

Alltså, jag fattar att man kör span om man vill skapa id:n eller classer och styra dessa med en central stilmall. Typ <span class="uppmaning"> och sedan knyter den class:en till kursiv text. Men att skriva in CSS:en direkt i span-taggen verkar... inte optimalt.

Det har att göra med koduppdelning. HTML för innehåll, CSS för design och layout (och javascript för beteende). Det underlättar utvecklingen när man slipper meka i både html- och css-filen när man bara ska ändra utseendet. Om man är flera utvecklare, t.ex. en som gör innehållet och en designer, blir det ännu viktigare att dela upp det.

Dessutom blir det mycket lättare att ändra layouten om man använder CSS istället för stiltaggar. Tänk dig att du har 50 fetstilta ord på en sida med <b>-taggen. Om du kommer på att det inte blev bra, eller om du vill testa nåt annat, så måste du ändra på 50 ställen för att ta bort fetstilen. Om du gör det med CSS behöver du bara ändra på ett ställe.

  • Medlem
  • Stockholm
  • 2011-12-05 20:46

Men det har jag inte gjort. Jag har använt en klass som heter italic och en som heter bold. Det beskriver vad de gör och de definieras i css. För att skriva css direkt i html, så behöver jag använda taggen "style="

  • Medlem
  • Örebro
  • 2011-12-05 20:48

Det verkar som att även W3C gillar att man använder de riktiga taggarna i första hand:

Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of the div element instead of more appropriate elements leads to poor accessibility for readers and poor maintainability for authors. (min underskrykning)

Källa: 4.5 Grouping content — HTML5

Nu handlar citaten ovan visserligen om div, men om jag har förstått saken rätt fungerar span på ungefär samma sätt, men på textnivån.

Senast redigerat 2011-12-05 21:28

Ja, om det är en betoning (<em>, emphasis) eller förstärkning (<strong>) man är ute efter så ska man generellt använda de taggarna, då t ex skärmläsare då läser texten med önskat tonfall. Är man däremot bara ute efter fet (<b>) och kursiv (<I>) stil så kan man välja fritt mellan de kortare taggarna och <span> med CSS, eller vad man nu känner för.

Mao, <em>/<strong> = betydelse & textstil, <b>/<i> = enbart textstil.

  • Medlem
  • Örebro
  • 2011-12-07 00:33

Absolut. Men om du kallar din CSS-klass för "bold" och den sedan inte innebär att texten är fet är det så vetetusan om det är rätt gjort, även om det fungerar.
Är det inte då bättre att försöka vara hyggligt semantisk när man skriver sin HTML? Exempelvis att antingen använda <em> eller kanske en <span class="uppmaning"> och förändra em:n eller klassen uppmaning i stilmallen efter vad som såg bäst ut. Kanske är det ändå bättre att använda <em class="uppmaning">?

  • Medlem
  • Göteborg
  • 2011-12-07 18:54

Instämmer helt och hållet med jahve.
Css-klasser som heter såsom det är tänkt att texten skall se ut håller inte. Lika lite skall man ersätta existerande html-taggar med klasser som syftar till att göra samma sak. (tex <div class="title"> isf <h1>). Att göra som jac är att gå över ån efter vatten.
Men det har varit en ganska utbred vanföreställning när trenden inom webblayout gick över från table-baserat till css-styrd och den sk divitis spred ut sig över nätet.

  • Medlem
  • Stockholm
  • 2011-12-08 12:32

Jag förstår inte vad jahve pratar om nu. Den klass som i mitt fall heter "bold" gör just texten fetstilt. Var får du in att jag inte döper mina klasser logiskt?

Ja, jag använder en uppdelning mellan html och css, såsom Vassius beskriver. Varför? För att om jag använder <b> på flera ställen och det sen visar sig att jag kanske vill ändra all fet text lite annorlunda, så vill jag inte behöva gå in i varje html-fil och antagligen sitta och leta missar i en halvtimme istället för att allt ändras i en css-fil.

Det är helt enkelt av praktiska skäl jag delar upp texten mellan html och css. Den validerar när man gör det, så jag förstår inte varför jag ska använda en tagg med fördefinierade inställningar som jag inte kan vara säker visar samma sak i IE och alla andra webbläsare.

  • Medlem
  • Örebro
  • 2011-12-08 13:20

Du kallar en klass för bold för att ha möjlighet att inte göra texten fetstilad i framtiden. Det innebär att du eftersöker möjligheten att senare ändra klassens egenskaper till något tvärtemot vad den heter, vilket jag menar är lite tokigt. Vad vinner du på möjligheten att göra klassen bold icke-fet, förutom förvirring?

Jag menar att man i första hand ska använda semantiska taggar, typ <h1>, <em>, <strong> som visar vad texten är för något. Göra HTML-koden meningsfull helt enkelt. Om det skulle vara så att du faktiskt behöver en <em class="uppmaning">, <strong class="uppmaning">, kanske t o m <span class="uppmaning"> - så kalla din klass för vad det är istället för hur den ska se ut. Varför då? Jo, för att skilja form från innehåll - det du säger att du vill uppnå.

Då kan du ju vid ett senare tillfälle bestämma att alla uppmaningar på din hemsida ska vara stora röda feta versaler. Men ett namn som bold säger ju ingenting om stora röda versaler. Och ännu värre blir det när du ändrar så att de bara ska vara röda och stora. Klassen bold betyder då allt annat än fet teckenstil.

Se Web development mistakes | 456 Berea Street, särskilt punkterna <span> mania och Lack of semantics.

  • Medlem
  • Stockholm
  • 2011-12-09 09:33

Du övertolkar och överreagerar. Men jag ska läsa länken.

1
Bevaka tråden