Avatar billede aspbegynder Nybegynder
06. maj 2002 - 18:13 Der er 33 kommentarer og
4 løsninger

CSS og link

Hej

Hvordan søren laver man noget CSS-kode, som kan gøre følgende I ET LINK:

1) Første sætning (ind til line-break) skal være fed og blå.
2) Anden sætning (ind til line-break) skal være kussiv og sort.
3) Tredje sætning (ind til line-break) skal være normal og sort.

Avatar billede yousif Nybegynder
06. maj 2002 - 18:25 #1
Jeg forstår ikke helt hvad du mener, kan du ikke forklare det?

MVH
Yousif
ysubhi@hotmail.com
Avatar billede aspbegynder Nybegynder
06. maj 2002 - 18:34 #2
Jo, jeg har en masse lange links på min hjemmeside, som jeg gerne vil have lidt "central styring på", til hvilket jeg med fordel kan bruge CSS.

Rent HTML-mæssigt ville det se således:

<p><a href="index.asp">
<b>Titlen på en artikel<br>
</b><i>skrevet af</i><br>
Den artikel handler om...</a></p>

Og så kommet 1000 kr. spørgsmået - kan dette på en smart måde laves om til CSS?
Avatar billede aspbegynder Nybegynder
06. maj 2002 - 18:34 #3
kommet = er ;)
Avatar billede yousif Nybegynder
06. maj 2002 - 19:21 #4
Nej, jeg mener ikke at det kan lade sige gøre, desværee :-(

MVH
Yousif
Avatar billede tjacob Juniormester
06. maj 2002 - 19:41 #5
Du kan bare dele teksten op med div's:

<a href="Index.asp">
<div style="font:bold 12px Verdana; color:#0000FF">
Dette er første linie</div>
<div style="font:italic 12px Verdana; color:#000000">
Dette er anden linie</div>
<div style="font:12px Verdana; color:#000000">
Dette er tredie linie</div>
</a>

/tjacob
Avatar billede tjacob Juniormester
06. maj 2002 - 19:41 #6
stylene kan du lægge i et ekstent css-doc, og kalde med class eller id.
Avatar billede yousif Nybegynder
06. maj 2002 - 19:46 #7
tjacob>det ville jeg også have skrevet, men det er ikke det han spørger om!

"...følgende I ET LINK..."

MVH
Yousif
Avatar billede tjacob Juniormester
06. maj 2002 - 19:49 #8
Det ER i et link. Hele baduljen er omkranset af <a> - </a>.
Jeg formoder det er det han mener. På denne måde er alle 3 linier linket.
Avatar billede aspbegynder Nybegynder
06. maj 2002 - 19:52 #9
Yes, det er i et link.
Avatar billede tjacob Juniormester
06. maj 2002 - 20:04 #10
F.eks. sådan her:

i et style tag eller i en css-fil:

div.linktop{font:bold 12px Verdana; color:#0000FF}
div.linkmidt{font:italic 12px Verdana; color:#000000}
div.linkbund{font:12px Verdana; color:#000000}

I den kode jeg skrev før erstattes divs med:
<div class="linktop">Dette er første linie</div> osv

/tjacob
Avatar billede aspbegynder Nybegynder
06. maj 2002 - 20:13 #11
>>tjacob

Det virker jo langt hen ad vejen, ud over at følgende kode bliver ignoreret/"overskrevet", hvorved linket forbliver blå selv om man har klikket på det.

a:visited {
      text-decoration: none;
      color: gray
  }

Hvordan gøres det (med din kode), således at linket bliver grå, når man har klikket på den?
Avatar billede tjacob Juniormester
06. maj 2002 - 20:18 #12
Det KUNNE være fordi din visited-kode står før den anden kode i style-taggen eller i css-filen. Den skal stå EFTER det kode jeg foreslog.

/tjacob
Avatar billede aspbegynder Nybegynder
06. maj 2002 - 20:23 #13
Det har jeg prøvet - det giver desværre ingen forskel.
Avatar billede tjacob Juniormester
06. maj 2002 - 20:28 #14
Det må være fordi divs overrider a:visited, da de læses sidst af browseren.
(Først når vi ER inde i a). Jeg ser på sagen, men er nødt til at smutte et par timer.
Avatar billede aspbegynder Nybegynder
06. maj 2002 - 20:36 #15
Ok - tak for hjælpen indtil nu :-)
Avatar billede aspprogram Nybegynder
06. maj 2002 - 21:48 #16
lol... sådan gør du....

i css delen skrives følgende:

A.asp1:link {
  color : blue;
  font-weight : bold;
  text-indent : 20px;
}

A.asp2:link {
  color : black;
  font-weight : italic;
  text-indent : 20px;
}

A.asp3:link {
  color : blue;
  text-indent : 20px;
}

(asp1, asp2 og asp3 = er en klassifikation) (kan ændres til hvad du nu vil kalde dem....)

------

På siden skrives:

<a class="asp1" href=".........">bla bla</a>
<br>
<a class="asp2" href=".........">bla bla</a>
<br>
<a class="asp3" href=".........">bla bla</a>

NB.. forskellen fra normale links er, at her sættes [class="asp3"] for at fortælle hvilken den skal bruge...

sådan... nu skulle det være klaret :)

Kenneth
Avatar billede aspprogram Nybegynder
06. maj 2002 - 21:53 #17
den kode jeg gav oven over... gøres bare på samme måde med Hover, Visited og Active.....
Avatar billede aspprogram Nybegynder
06. maj 2002 - 22:09 #18
nå ja...

text-indent : 20px gør at den bliver rykket 20px ind fra venstre
Avatar billede =maddog= Nybegynder
07. maj 2002 - 05:44 #19
<style>
    p:first-line {
    font: bold;
    color: blue;
    }
    i, a p {
    color: black;
    }
</style>

og så
<a href="index.asp"><p>Titlen på en artikel<br>
<i>skrevet af</i><br>
Den artikel handler om...
osv.osv.
</p></a>

husk at <a> skal omkapsle blok-elementet <p>. ellers mister du den blå overskrift
Avatar billede =maddog= Nybegynder
07. maj 2002 - 05:55 #20
faktisk behøver du kun
<style>
p:first-line {font: bold; color: blue; }
a p { color: black; }
</style>
hvis du vil angive andre styles for HELE linket så gøres det sådan
a { text-decoration: none; }
bemærk at NS4.x ikke understøtter :first-line pseudo-elementet
Avatar billede tjacob Juniormester
07. maj 2002 - 11:39 #21
Hverken aspprograms eller (delvist) maddogs løsninger tillader forskellige styles INDEN i et link. maddogs kan dog give to forskellige, men der vil være de samme problemer med visited. Jeg tror ikke det er muligt at definere forskellige visited-farver i det samme link. (Eller den samme, hvis link-farverne er forskellige ;-)).
Jeg tror man er nødt til at lave noget betinget JavaScript der kan ændre disse farver dynamisk, -men det er ikke min stærke side.

-Alternativt kunne du jo lave det som 3 links, der blot linker til den samme url. Så er der jo ingen problemer.

Endelig kunne du lave det helt uden <a>, og i stedet lave noget onclick-kode der åbner dit link. (Men det er jo også JavaScript ;-)).
(Men der er stadig problemet med visited---).

/tjacob
Avatar billede tjacob Juniormester
07. maj 2002 - 11:48 #22
Eller -naturligvis VBscript, som du sikkert kender hvis du bruger asp.
Avatar billede =maddog= Nybegynder
07. maj 2002 - 12:57 #23
a { text-decoration: none; }
anullerer også alle psuedoklasser. jeg har testet det i IE5 og 6 og farverne bevares uden problemos. så den endelige løsning må være:
<style>
a p:first-line {font: bold; color: blue; }
a p { color: black; }
a { text-decoration: none; }
</style>
Avatar billede aspbegynder Nybegynder
07. maj 2002 - 18:50 #24
=maddog= >>

Problemet, som er blevet diskuteret ovenfor, er, at "a:visited" bliver overrided, hvilket ikke er meningen:

<html>

<head>
<style>

a:visited {
      text-decoration: none;
      color: gray
      } 

a p:first-line {font: bold; color: blue; }
a p { color: black; }
a { text-decoration: none; }
</style>

</head>

<body>

<a href="index.asp"><p>Titlen på en artikel<br>
<i>skrevet af</i><br>
Den artikel handler om...
</p></a>

</body>

</html>
Avatar billede =maddog= Nybegynder
07. maj 2002 - 19:05 #25
vil du stadig have blå overskrift:
<style>

a:visited p { text-decoration: none; color: gray  } 
a:visited p:first-line {font: bold; color: blue; }
a p:first-line {font: bold; color: blue; }
a p { color: black; }
</style>

vil du ikke
<style>
a:visited p { text-decoration: none; color: gray  } 
a p:first-line {font: bold; color: blue; }
a p { color: black; }
</style>
Avatar billede =maddog= Nybegynder
07. maj 2002 - 19:13 #26
den bliver ikke overskrevet som sådan, men når browseren skal vælge mellem to styles for samme element scorer den dem:
1 for normal, ganget med antal elementer tilsluttet så:
a, p, table {color:red} scorer 3
10 for nestet, ganget med antal elementer tilsluttet så:
a p, a table {color:blue} scorer 20
100 for klassetildeling så:
a.mylink {color:green} scorer 100
1000 for id-specifik så:
#minDiv {color:white} scorer 1000
i
<div id="minDiv"><a class="mylink">text</a></div>
bliver teksten altså hvid, da #minDiv scorer højest.
i dit tilfælde bliver
a:visited kun scoret til 1, men a p og a p:first-line bliver scoret 10.
derfor skal du lave en nestning af a:visited så de for samme score.
Avatar billede aspbegynder Nybegynder
07. maj 2002 - 20:39 #27
Det' jo smukt! Det virker, dvs. at linkets overskrift er blå mens linkets tekst er sort - og hele linket bliver rigtigt nok grå, når det er besøgt. Jeg prøvede at bygge videre på koden efter dit princip, men det virkede mystisk nok ikke:

<style type="text/css">
a:hover p { text-decoration: underline }
a:active p { text-decoration: underline }

a:visited p { text-decoration: none; color: gray  } 
a p:first-line {font: bold; color: #004080 }
a p { text-decoration: none; color: black }

</style>

Jeg indsatte disse linier, som ikke virkede - hvorfor?
a:hover p { text-decoration: underline }
a:active p { text-decoration: underline }
Avatar billede aspbegynder Nybegynder
07. maj 2002 - 20:51 #28
Det skal lige tilføjes, at jeg havde overset, at "a:active p { text-decoration: underline }" faktisk virkede. (Men det gør "a:hover p { text-decoration: underline }" stadig ikke.)
Avatar billede =maddog= Nybegynder
07. maj 2002 - 21:53 #29
:hover er lidt sær fordi den ikke vil nestes.
a:hover p { text-decoration: underline }
virker aldrig
a:hover { text-decoration: underline }
virker, men har jo lavere 'vægt' jvf. forklaringen ovenfor.
du bliver kanske nød til at knalde et par mouseover og mouseout på.
Avatar billede =maddog= Nybegynder
07. maj 2002 - 21:55 #30
sidenote: layout på din kursiv 'skrevet af' sættes
a p i {font-size:10pt;}
Avatar billede =maddog= Nybegynder
07. maj 2002 - 22:02 #31
du kan jo sætte en attribut der ikke er sat i de andre på :hover og holde den uden nest
<style type="text/css">
a:link p:first-line {font: bold; color: #004080 }
a:link p { text-decoration: none; color: black }
a:visited p { text-decoration: none; color: gray  } 
a:hover { background:red; }
a:active p { text-decoration: underline; }
</style>

virker fint. hvis du genovervejer det med den blå overskrift er der jo
<style type="text/css">
p:first-line {font: bold; color: #004080 }
a:link  { text-decoration: none; color: black }
a:visited  { text-decoration: none; color: gray  } 
a:hover { text-decoration: underline; }
a:active  { text-decoration: underline; }
</style>
men det kan være det f**ker noget af dit andet layout up.
Avatar billede aspbegynder Nybegynder
08. maj 2002 - 08:48 #32
Surt at "hover" ikke kan "nestes". Desværre er løsningen unden "nesting" ikke så god - jeg havde allerede prøvet den og fundet den uhensigtsmæssig.

Her kommer lige et side-spørgsmål, hvis du stadig har lyst og tid til at hjælpe mig, hvilket jeg er meget taknemmelig for :-)

Findes der ikke en kommando, som kan erstatte "first-line"? Problemet er, at "first-line" difinerer den første linie udfra ens browser-vindues-størrelse, hvilket ikke er smart ved lange links, fordi det kommer til se forskellig ud fra browser til browser. Findes der ikke i stedet en kommando, som hedder noget med "first-line-br", alså en kommando som difinerer den første linie værende indtil det første <BR>. (Jeg ved godt, at man kan difinere "first-line", men dette ville kræve meget arbejde, fordi jeg har mange links.)
Avatar billede =maddog= Nybegynder
08. maj 2002 - 12:16 #33
jeg har aldrig hørt om andre pseudoklasser end :first-line :first-letter(hedder den vist) :link :hover :active og :visited.
.... Problemet er, at "first-line" difinerer den første linie udfra ens browser-vindues-størrelse ....
Nej. Det første linje er altid den første linje (goddag mand økseskaft). Jeg ved hvad du mener. Der er ikke altid det samme indhold i første linje. Meeeeen. Er det ikke dit problem? Så må du bare sætte dit <BR> rigtigt og have korte og sigende overskrifter.
husk text-align:center; i p:firstline { og a p i { så det ser sprødt ud.
CSS kan IKKE opfatte og håndtere <BR> som tag. Det ser kun et linjeskift.
Avatar billede aspbegynder Nybegynder
08. maj 2002 - 14:53 #34
Ok, tak for alt hjælpen.
Avatar billede =maddog= Nybegynder
08. maj 2002 - 15:02 #35
tak. jeg synes vi to har bevist at eksperten ikke bare handler om point-jagt. jeg er virkelig glad hvis jeg har hjulpet dig.
mere om pseudo elementer:
http://www.w3.org/TR/REC-CSS1#pseudo-classes-and-pseudo-elements
mere om om scoring (jeg huskede ikke helt rigtig her)
http://www.w3.org/TR/REC-CSS1#cascading-order
det er det samme dokument, men det er lidt svært at navigere i. håber du har fået et indtryk af hvordan browseren vurderer CSS og vælger layout. mange gange kan man spare adskillige linje HTML med en linje CSS og få et bedre layout.
Avatar billede aspbegynder Nybegynder
08. maj 2002 - 15:10 #36
Helt enig (ang. points så har jeg kun de points, som man dagligt får). Igen, tak for hurtig og god hjælp :-)
Avatar billede =maddog= Nybegynder
08. maj 2002 - 15:32 #37
jamen det skulle også være nok. hvis man er så heldig at have små problemer (-:
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester