![]() |
I style.css content så har jag följande kod:
Kod:
#content a { |
kanske
Kod:
#content a img { border:0;} |
Funkar inte tyvärr
|
Kan inte komma på någon annan lösning än att sätta "border: 0;" i a-taggen för varje bildlänk. Men det kanske är omständigt?
Kod:
<a href="link.html" style="border: 0;"><img src="img.gif"></a> |
Citat:
Kod:
#content a img { |
Citat:
|
koala och Blackex:
a img { border: none; } fungerar förstås inte eftersom border-bottom är satt på ankarelementet, a, och inte på bilden, img. (och eftersom det inte finns något css-sätt att styra bakåt i precision, typ a<img, så går det inte att göra på något smidigt sätt) Att sätta en class="medbild" på <a> eller liknande är nog smidigast. Då kan man ju i alla fall styra upp ett konsekvent beteende för alla bildlänkar med: a#medbild { border: none; } /* bildlänkar */ a { border-bottom: 1px solid red; } |
Citat:
|
Jag skulle skriva:
#content a.bild {border: none;} <a class="bild" ...> |
jag skulle skriva
img { border: 0px; } Hur ofta vill man liksom ha en border på en bild man länkar? |
Citat:
Citat:
Typ: img { padding: 3px; background-color: white; border: 2px solid #456; } |
Citat:
[img]...[/img] för att få bort ramen som skapades vid länkning. Det är exakt vad min lösning ovan gör också fast med css. Men vill man ha en ram på bilder ändå så får man väl göra det så om man vill. Dock fungerar min lösning fint och jag använder det själv på flera sidor. Om jag nu skulle vilja ha en ram på bilder på sidan så har jag förmodligen de bilderna inom ett eget lager och ger då lageregenskaper som då renderar i en ram på bilderna. Men generellt är jag inte intresserad av att ha en ram på bilderna i t.ex. menyer, rubriker etc. |
Citat:
Citat:
Citat:
Citat:
h2 img { bla: bla; } Jag tror du missförstått den egentliga frågan, skilj bild-elementet från ankar-elementet i ditt tänkande. Frågan var hur man slipper att få en border-bottom på ett <a> som följs av <img>. Det kan hända att vi har olika tankesätt om hur css bör användas men din lösning med ett img {border:0px} verkar ju inte särkilt avancerad, mer än en motsvarighet till gamla border="0" (Det finns, för den som är intresserad, ett logiskt glapp här: border="0" i html innebär att länken inte ger någon ram runt bilden fastän ramen är orsakad av länken och inte av bilden. Man sätter alltså ram-storleken på bilden trots att den uppstår genom länkningen) Edit: koala och Blackex, några kommentarer? |
Citat:
När jag pratar om lager så pratar jag om div. Normalt sett när man använder css för att styra en sidas innehåll använder man lager, dvs div:ar för specifika delar av sidan. Detta för att slippa använda class-taggen överallt utan man kan istället ha <div id="lager1">innehåll som formateras</div> och sedan bara skriva #lager1 a {... } . Du får mindre kod än om du ska skriva .... på alla taggar. Dvs. sidan laddas snabbare samt att det är enklare att ändra(Färre ställen att ändra på). Citat:
Men alla som arbetar med css vet att bara följa vad som är semantiskt korrekt räcker inte för att sidan ska visas rätt i alla webbläsare då dom har tolkat och implementerat det olika. Mitt sätt fungerar fint för mig i alla webbläsare och därför använder jag det. Jag säger inget om att ditt sätt är fel men alla sätt är väl bra utom dom dåliga(Dom som inte funkar)? |
Citat:
Om man har: a { border-bottom: 2px solid red; } och vill slippa "understrykningen" på länkade bilder: [img][/img] men behålla den om det är en textlänk: bla Hur gör man då? Din föreslagna lösning: img {border:0px} löser inte problemet eftersom ramen inte sitter på bilden utan på länken. Istället behövs som guran och elofsson konstaterat t ex (om man inte vill använda none) a {border:0px} (och förstås sätta det i sin kontext t ex: div#content a.bild {border:none} med länkade bilder [img][/img]) Det verkar som du (och tidigare Blackex och koala) missat denna "finastilta" detalj. (Vilket antagligen beror på att i gammal html så satte man border="0" på img även fast ramen uppstod på grund av a-elementet) Slutsats: Din lösning löser inte det här problemet utan något annat (eftersom du menar att den fungerar bra). Citat:
Dessvärre kan i alla fall inte jag komma på någon lösning där man löser just det här problemet utan en class (i alla fall inte utan att fläska på med mer html...). (Om det hade funnits en "parent selector" (t ex p<a) och inte bara en "child selector" (p>a) i css så hade man kunnat gå bakåt med t ex a<img skulle ha varit praktiskt, som jag redan påpekat, i detta fall...) I övrigt ser man rätt ofta hur sidor fylls med onödiga divvar som omsluter bilder, listor och andra element. Ofta går det att lösa utan divven, t ex med <ul id="lager1a"> (om man nu vill kalla det för lager) och på så sätt ha en "måltavla" för sin css. I synnerhet att lägga en <img> direkt i en <div> utan någon annan anledning än att sätta en ram på bilden är ganska överflödigt. (Men det är ju förstås inte det du menar ovan, så detta är ingen känga till dig...) Citat:
|
ponera att bakgrunden är vit, länkramen är röd
Kod:
a { border-bottom:1px solid #c00; } |
Har ni blivit helt galena i denna tråd?
Från början var text-decoration: none, vilket ju innebär att länken inte har ett streck under sig. Sedan har det lagts ett streck under länken via border-bottom. När länken är en bild ska det inte vara något streck med hjälp av border-bottom. Det är problemet och inte om bilden har en ram eller inte! |
Citat:
|
alldeles sant guran, men eftersom det lagts till ett border-bottom så funkar inte a img { border:none} , därav den bakgrundsfärgade ramen på a img.
|
Citat:
Kod:
#content a.bild, #content a.bild:hover {border: none;} |
...
|
Jag skulle nog låta bli att använda en border-bottom och hålla mig till text-decoration underline eftersom det är den mest pedagogiska och minst komplexa lösningen. Varför måste linjen absolut vara streckad? Nåja, är designen så viktig får man väl kompromissa med kodens struktur. Själv föredrar jag pedagogik i koden framför perfekt design.
|
guran, vill du verkligen lägga till en klass på varje bild?
men som svar på din fråga - nej. länkade bilder "vill" ha ram, har länkar ram vill också bilden "ha" det. bättre är då att sätta en alternativ ramfärg. att lägga till klasser gör det bara krångligare... imnsho koala, jag håller med dig. |
Det man måste tänka på är hiarkin i koden, exempelvis att inline styling skriver över övrig CSS. Det är färför det nu fungerade för JeZZifelt. Dock så skulle jag aldrig göra så själv då jag inte tycker inline styling inte riktigt är rätt. Men nu är ju det inte frågan längre så skitsamma...
Men i det här fallet så är ramen på Länk taggen och inte bilden, tänk att ankaren blir en liten container som i sin tur har ramen på sig (alltså spelar det ingen roll hur mycket du ändrar ramen på bilden). Precis som många redan har sagt. Det det ända vettiga sättet vad jag kan se är att sätta en class på alla länkar som är en bild, eller tvärtom. Att föredra är ju förstoss att använda text-decoration och/eller text-underline för att slippa allt krångel. Ännu en gång; precis som andra redan har sagt. Är lite osäker på hur pass text-underline fungerar på vissa webläsare? http://www.w3.org/TR/2003/CR-css3-te...coration-style |
Citat:
Men problemet i denna tråd är inte huruvida bilden har en ram eller inte utan att a-taggen ska ha border-bottom: 0 när a-taggen innehåller en bild. |
Det är vid såna här tillfällen jag brukar ta till DOM-script. I det här fallet kanske man skulle använda en klass med text-decoration som default och med DOMs hjälp byta ut den mot en med border på de ankare som inte har en bild som child.
|
Alla tider är GMT +2. Klockan är nu 22:23. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson