Gå til innhold

HTML og CSS - Nybegynner med spørsmål


Anbefalte innlegg

Takker! :) og takk for forklaringa av div og section. Utrolig vanskelig å få noe svar fra folk på akkurat det tema.

 

Anyway. Jeg har en boks.

Den er:

.box {
position: absolute;
width: 250px;
height: 50px;
text-align: center;
<div class="box">En tekst som nekter å stå der jeg vil</div>
For meg så er text-align en eneste stor tease.. Den sentrerer i midten, men ikke oppe og nede.
Hvordan får jeg teksten til å bli nøyaktig i senter. Fra høyre, venstre oppe og nede. Jeg vil ha den i midten! :grumpy:
Lenke til kommentar
Videoannonse
Annonse

Det finnes flere måter å få midtstilt innholdet vertikalt.

 

For en enkel tekstlinje som du vet at ikke vil overskride den totale tilgjenglige bredden, så kan du sette css.line-height:50px; - (50px i ditt tilfelle). Altså til samme høyde som elementet.

 

Her er en annen måte du kan prøve ut - hvis du ikke vet om teksten vil gå over flere linjer:

.box {
  width: 250px;
  height: 50px;
  text-align: center;
# følgende midstiller teksten vertikalt
  display:table-cell;
  vertical-align:middle;
//
}

Denne metoden er forøvrig ikke kompatibel med alle nettlesere, samt at css.table-cell også påvirker elementet med tanke på at det nå oppfører seg som et tabell-element.

 

En tredje måte er å plassere ytterligere en div inni figcaption og midtstille denne vertikalt:

figcaption {
  width: 250px;
  height: 50px;
  position:relative;
}

.vertical-center {
  margin: auto 0;
  position: absolute;
  top: 0; left: 0; bottom: 0; right: 0;
}

PS! For at denne metoden skal fungere må .vertical-center elementet vite høyden på seg selv. Altså; Du må sette css.height til f.eks. 20px.

 

Så du må nesten bare prøve deg litt frem og se hva som funker for deg. Finnes garantert flere måter å få til dette på, men det er disse jeg kom på nå i farta...

Endret av Yawa
Lenke til kommentar

Jeg prøvde den andre metoden, med display:table-cell;

vertical-align:middle

Bildet spratt langt ifra midten. Jeg har gjort noe et sted som gjør at det ikke fungerer.. tror jeg.

 

Jeg har et annet spørsmål da. Å sentrere bildet automatisk får vente en liten stund.

 

Om jeg har en rekke linker.

Thats it. Det er ikke snakk om å lage noe id eller class eller noe.

 

Jeg vil ha tak i linker som inneholder et spesefikkt (spesifikk?) ord i url'teksten, og style dette.

Altså jeg vil lage en.. jeg vil skrive enkle kommandoer i css for å finne f.eks. alle url som har "vg" i seg, og så vil jeg style KUN disse.

 

Igjen.. dette uten id eller class eller noe slik.

 

Hvordan kan jeg gjøre dette?

Lenke til kommentar
Gjest Slettet+1523

Jeg prøvde den andre metoden, med display:table-cell;

vertical-align:middle

Bildet spratt langt ifra midten. Jeg har gjort noe et sted som gjør at det ikke fungerer.. tror jeg.

 

Jeg har et annet spørsmål da. Å sentrere bildet automatisk får vente en liten stund.

 

Om jeg har en rekke linker.

Thats it. Det er ikke snakk om å lage noe id eller class eller noe.

 

Jeg vil ha tak i linker som inneholder et spesefikkt (spesifikk?) ord i url'teksten, og style dette.

Altså jeg vil lage en.. jeg vil skrive enkle kommandoer i css for å finne f.eks. alle url som har "vg" i seg, og så vil jeg style KUN disse.

 

Igjen.. dette uten id eller class eller noe slik.

 

Hvordan kan jeg gjøre dette?

 

Du kan prøve:

 

a[href*="vg.no"] { /* hvaenn du vil gjøre i CSS */ }

Det henter alle linker som har en adresse som inneholder "vg.no", så endrer du bare dette til det du vil ha.

 

EDIT: Ref. sens1r, det er vel ikke helt riktig at dette ikke lar seg gjøre. Ved å bruke [] som selektor kan du hente verdier fra attributtene til HTML-tagger, i dette tilfellet for å hente href-attributtet til lenker. Hvis du vet at ALLE linker som går til en spesiell adresse skal ha spesiell CSS, ville jeg avgjort ikke gjort dette gjennom å gi klassenavn, for å bedre skille mellom innhold og utseende.

Endret av Slettet+1523
Lenke til kommentar
Gjest Slettet+1523

Du kan ikke velge elementer ut fra linjenummer i CSS, for linjenummer tas ikke høyde for i DOM'en. Uansett hadde det ikke vært noen god idé fordi du ikke tar høyde for at innholdet kan endre seg underveis.

Endret av Slettet+1523
Lenke til kommentar

brukte float: left; under li {}

Så nå er de på linje.

 

 

 

Nytt spørsmål da.

 

- Jeg lager en div.

- Lager boks utav diven. Height, width background-color ect.

- Vil ha en liste inni boksen. Altså lage en meny.

 

Nå jeg begynner å skrive, så går alt bra. Teksten plasserer seg der jeg vil.

Men med en gang jeg putter <ul></ul> rundt lista, så BOOM! Teksten flytter på seg, og hele menyen blir ødelakt.
Hvordan får jeg stilt tilbake teksten?

Endret av Manlulu
Lenke til kommentar

brukte float: left; under li {}

Så nå er de på linje.

 

<li> er fortsatt et block-element. Hvis du sier at #buttons_top er inline så endrer du ikke elementer inne i den.

 

 

<li> er i utgangspunktet et block-element. Hvis du vil at #buttons_top og <li> (som er inne i #buttons_top) skal være inline så må du skrive:

#buttons_top, buttons_top li {
  display: inline; 
}

Det er ikke noen grunn til å ha en div rundt et nav element, så hvis du fjerner den så får du litt enklere kode. ID attributten kan du flytte til <nav>.

 

Edit: <ul> er et block-element, og man skal ikke ha block-elementer i et inline-element. Er det noen grunn til at #buttons_top må være et inline-element?

Endret av elos
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...