webForumDet fria alternativet

Bild i mitten

HTML & CSSur HTML, XHTML & CSS

7 svar · 560 visningar · startad av Webber2003

Medlem sedan okt. 20031 113 inlägg
Frågan#1

Vad ska man skriva för kod för att få en bild på hemsidan i mitten på hemsidan oberoende vad man har för skärmstorlek?

Medlem sedan juli 20013 378 inlägg
#2

Hmm...

Finns några olika sätt...
Om du bara vill ha bilden där (utan att ha den t.ex. länkad eller utskrivbar) k an du lägga den som en bakgrundsbild på body med CSS såhär:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Ett exempel</title>
<style type="text/css">
<!--
body {
	background-image: url(testbild.gif);
	background-repeat:no-repeat;
	background-position: 50% 50%;
	}
-->
</style>
</head>

<body>
<div>
&amp;nbsp;
</div>
</body>
</html>

En annan enkel (men i dessa dagar kanske lite kontroversiell) metod är att använda en tabell såhär:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Ett exempel</title>
<style type="text/css">
<!--
html,body {height:100%;margin:0;padding:0}
table {
	height:100%; width:100%; border:none; 
	margin-collapse:collapse;
	}
td {text-align:center;}
-->
</style>
</head>

<body>
<table>
	<tr>
		<td>
			<img alt="en centrerad bild"  src="testbild.gif" />
		</td>
	</tr>
</table>
</body>
</html>

Fördelen med "tabellmetoden" är att det är enkelt att länka bilden mha en <a>-tagg...

Fast det är klart, det kan man göra på ett lite modernare sätt såhär också:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Ett exempel</title>
<style type="text/css">
<!--
html,body {height:100%;margin:0;padding:0}
div {
	position:absolute;
	top:50%;
	left:50%;
	margin-top:-40px; /* halva bildens höjd */
	margin-left:-40px; /* halva bildens bredd */
	}
-->
</style>
</head>

<body>
<div>
	<img alt="en centrerad bild"  src="testbild.gif" />
</div>
</table>
</body>
</html>

Som di säj i amerikat: "Pick your poison" ;)

Medlem sedan okt. 20031 113 inlägg
#3

Tack så mycket för svaret, ska ta och testa det :)

Medlem sedan okt. 20031 113 inlägg
#4

Dock så verkar ej det sista alternativet göra så sidan kommer i mitten, så jag tog och använde mig av det 2 alternativet.

Medlem sedan juli 20013 378 inlägg
#5

Hmm..

Alla tre funkade i MSIE6 och Mozilla1.4 på Win2K när jag testade dem innan jag lade upp dem...

Ändrade du värdena på margin-top: och margin-left: så att de motsvarade halva din bilds storlek när du testade alternativ 3 ?

Medlem sedan okt. 20031 113 inlägg
#6

jarvklo skrev:

Hmm..

Ändrade du värdena på margin-top: och margin-left: så att de motsvarade halva din bilds storlek när du testade alternativ 3 ?

Nej kopierade den bara rakt av men tog det andra alternativet och den fungerade som den skulle för mig. Tack för hjälpen :)

Medlem sedan dec. 20042 245 inlägg
#7

Jarvklo, jag förstår inte varför du ens postade det andra alternativet... ;)

Om du använder tabeller för layout så motsvarar en transitional doctype ditt dokument bättre än en strict doctype...

Jag skulle använda alt 3 om bilden innehåller viktig information och alt 1 om bilden endast är dekorativ.

Medlem sedan juli 20013 378 inlägg
#8

zcorpan skrev:

Jarvklo, jag förstår inte varför du ens postade det andra alternativet... ;)

För att användning av tabeller för layout fortfarande påfallande ofta är ett väl fungerande alternativ till div:ar utplacerade med buggig positionerings-CSS i t.ex. MSIE... även om man kanske "bör" undvika dem enligt de senaste åsiktstrenderna...
Ja - senaste och senaste förresten... Ämnet har diskuterats hett och intensivt ända sedan mitten av 90-talet när tabellmetoden för layout "uppfanns" och ingendera sidan har kommit med några nya argument på länge ;)

Förresten: Även om man följer de senaste rönen för tillgänglighet är undvikande av användning av tabeller fortfarande inte något som alla webbsidor rimligen omfattas av per tvingande automatik, utan tabeller för layout är något man aktivt väljer att undvika eller ej utefter sidans målgrupp och syfte...

Kolla upp kravpunkt 5.3 i WAI 1.0 om du inte tror mig

Do not use tables for layout unless the table makes sense when linearized

(min fetstilsmarkering)
En tabell med bara en bild i är väl typexemplet på en tabell som "makes sense when linearized" (eftersom bilden "kommer rätt" i flödet hur man än tolkar sidan) - och den är då alltså helt OK använd för layout (eller i varje fall inte på något formellt sätt fel ;) ) även enligt WAI 1.0 - eller hur? :e

Fast det är klart - jag tog förstås också med i beräkningen att jag skulle reta lite lagom gallfeber på någon av de kodtalibaner som har häckat här den senaste tiden genom att ta med det från W3C:s rekommendationer 100% godkända och validerande alternativ 2...
Förutom det tyckte jag också att det var dags att bli lite obekväm och utdela en känga i all vänskaplighet mot det närmast religiösa mässandet emot tabeller för layout som förekommit här på siståne - jag menar, jag skrev att alternativ 2 kanske är lite kontroversiellt - eller hur ? :f

red: Vidare läsning för den intresserade av denna traditionellt inflammerade debatt: Layout tables considered valuable :birp

zcorpan skrev:

Om du använder tabeller för layout så motsvarar en transitional doctype ditt dokument bättre än en strict doctype...

Hmm...
Intressant...
Enligt vilken DTD (eller annan W3C-källa) då om man får fråga ? :stud

Tabeller (för layout eller för andra ändamål) är precis lika tillåtna enligt både Transitional, Strict och 1.1 om du kollar i Facit (dvs i rekommendationer och DTD:er)...

Valet mellan Transitional eller Strict har ingenting med valet av tabeller (eller ej) för layout att göra överhuvudtaget!

Tabellerna i sig är nämligen strukturellt identiskt deklarerade i xhtml 1.0 Transitional, xhtml 1.0 Strict och xhtml 1.1

Kolla själv:
Strict:

<!ELEMENT table
     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

Transitional:

<!ELEMENT table
     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>

1.1

<!-- table: Table Element .............................. -->

<!ENTITY % table.element  "INCLUDE" >
<![%table.element;[
<!ENTITY % table.content
     "( %caption.qname;?, ( %col.qname;* | %colgroup.qname;* ),
      (( %thead.qname;?, %tfoot.qname;?, %tbody.qname;+ ) | ( %tr.qname;+ )))"
>
<!ELEMENT %table.qname;  %table.content; >
<!-- end of table.element -->]]>

Var <table> får förekomma skiljer sig iofs marginellt mellan DTD:erna - men ingen av DTD:erna förbjuder den att förekomma som enda element mellan <body> och </body>-taggarna...
Eller hur? :e

zcorpan skrev:

Jag skulle använda alt 3 om bilden innehåller viktig information och alt 1 om bilden endast är dekorativ.

... Jaja - det är du det men det står, som sagt, dessutom vem som helst fritt att ta det informerade valet att använda alternativ 2 också - i varje fall om man håller sig till gällande rekommendationer för HTML och xhtml ;)

Och ursprungsfrågan var "vad skall man skriva för kod för att..." - på vilken jag svarade med tre validerande och kodmässigt helt korrekta alternativ... inte "Hur skall man på mest politiskt korrekt sätt..." så nu tycker jag att vi arkiverar den här utvikningen "OFF TOPIC" och istället följer wF:s §4 dvs att vi inte producerar fler " inlägg som avsiktligen inte besvarar frågan" :bla

PEACE :birp

*...och kom ihåg att jag inte hade tagit i såhär mot just dig zcorpan om jag inte ansett att ditt angrepp mot mig personligen ovan är "bad form" till att börja med :bla

Ni övriga som oförhappandes utsatts för denna, i mitt tycke alldeles för onödiga, holmgång får ursäkta...
Jag blev, som ni ser ovan, provocerad :birp*

136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
134 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)