[HTML/CSS] Code inkorten, mogelijk?

Pagina: 1
Acties:
  • 263 views sinds 30-01-2008
  • Reageer

  • NitroX infinity
  • Registratie: Januari 2002
  • Laatst online: 00:29
Ik ben momenteel bezig met een ontwerpje voor een site waarbij ronde hoeken worden gebruikt in de tabellen. Uiteraard wordt dit gedaan met afbeeldingen:

Afbeeldingslocatie: http://tweakers.net/ext/f/5254e3ca7eb65877e93d24f42b9d258c/thumb.png
^thumbnail^

Daarbij gebruik ik de volgende code:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<DIV CLASS="header">
    <TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
        <TR>
            <TD CLASS="z3topleft"></TD>
            <TD CLASS="z3top"></TD>
            <TD CLASS="z3topright"></TD>
        </TR>
        <TR>
            <TD CLASS="z3left"></TD>
            <TD CLASS="z3center">&nbsp;</TD>
            <TD CLASS="z3right"></TD>
        </TR>
        <TR>
            <TD CLASS="z3bottomleft"></TD>
            <TD CLASS="z3bottom"></TD>
            <TD CLASS="z3bottomright"></TD>
        </TR>
    </TABLE>
</DIV>

Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
DIV.header {
    position: absolute;
    width: 500px;
    height: 80px;
    left: 10px;
    top: 10px;
    border: 0px;
    z-index: -3; }

TD.z3topleft {
    width: 7px;
    height: 7px;
    background-image: url('site/images/z3topleft.png'); }

TD.z3top {
    width: *%;
    height: 7px;
    background-image: url('site/images/z3top.png'); }

TD.z3topright {
    width: 7px;
    height: 7px;
    background-image: url('site/images/z3topright.png'); }

TD.z3left {
    width: 7px;
    height: *%;
    background-image: url('site/images/z3left.png'); }

TD.z3center {
    width: *%;
    height: *%;
    vertical-align: top;
    background-color: #CEEAFF; }

TD.z3right {
    width: 7px;
    height: *%;
    background-image: url('site/images/z3right.png'); }

TD.z3bottomleft {
    width: 7px;
    height: 7px;
    background-image: url('site/images/z3bottomleft.png'); }

TD.z3bottom {
    width: *%;
    height: 7px;
    background-image: url('site/images/z3bottom.png'); }

TD.z3bottomright {
    width: 7px;
    height: 7px;
    background-image: url('site/images/z3bottomright.png'); }


Ik heb al enkele dingen uitgeprobeerd en tientallen topics hier op GoT doorgespit maar ik kom er maar niet uit. Kan deze code korter? Het liefst dat ik maar gebruik hoef te maken van één cell in elke div en dat ik voor alle vier de hoeken maar één keer de breedte en hoogte hoef op te geven (is toch constant).

Graphene; a material that can do everything, except leave the lab. - Asianometry


  • Rowanov
  • Registratie: Februari 2004
  • Niet online

Rowanov

Kop eens wat anders...

Mountaintop is nou niet precies het toonbeeld van een goede oplossing imho. Mijn vraag is of je gebruik maakt van vaste afmetingen voor de breedte van je blokken. Als je dit doet, kan je namelijk met een gif plaatje (met alleen de zwarte rand) voor de bovenkant en de onderkant af. Dan kom je uit op 2 gifjes per verschillende breedte. Ook zou ik zowieso de tabel pertinent niet gebruiken voor de opmaak en gewoon css gebruiken icm. semantische html.

  • Osxy
  • Registratie: Januari 2005
  • Laatst online: 08:54

Osxy

Holy crap on a cracker

Mischien is http://www.html.it/articoli/niftycube/index.html een idee. Zeer simpel en weinig code ;)

"Divine Shields and Hearthstones do not make a hero heroic."


Verwijderd

hier een voorbeeld van hoe je dit zonder tabellen doet.

  • skate master
  • Registratie: September 2004
  • Laatst online: 20-02 19:46

skate master

Autodesk Educator Expert

Op onderstaande manier zou ik het doen.
PHP:
1
2
3
4
5
<DIV id=header>
<DIV id=header_tekst>
Hier je header tekst!
</DIV>
</DIV>


css:
PHP:
1
2
3
4
5
6
7
8
9
10
#header {
width: breedtepx;
height: hoogtepx;
background-image: url('site/images/header.png');
}

#header_tekst {
top: 10px;
left: 10px;
}


Wat je nu doet is je voorbeeld afbeelding als losse rechthoeken met afgeronde hoeken als
achtergrond van je div instellen.
Dan zet je in een apparte div wie je dmv top en left op de juiste plaats zet je tekst in de header.
Er kan op een enkele plaats iets niet helemaal correct zijn, maar je bent een stuk in de richting.

[ Voor 5% gewijzigd door skate master op 22-05-2006 13:22 . Reden: Hmm net te laat ]


Verwijderd

Tjee, deze is wel erg nifty handig! ;)
/me bookmarked

  • bartje321
  • Registratie: November 2003
  • Laatst online: 19-02 16:28
doe het dan zo:

Op onderstaande manier zou ik het doen.
code:
1
2
3
<div class="header">
  Hier je header tekst!
</div>


css:
code:
1
2
3
4
5
6
7
.header {
  width: breedtepx;
  height: hoogtepx;
  background-image: url('site/images/header.png');
  margin: 10px;
  overflow:hidden;
}

[ Voor 10% gewijzigd door bartje321 op 22-05-2006 13:29 ]


  • Osxy
  • Registratie: Januari 2005
  • Laatst online: 08:54

Osxy

Holy crap on a cracker

Ik gebruik niftycubes nu al een tijdje en het is echt ideaal voor veel meer dan alleen ronde hoeken, ook div's gelijke hoogte geven is erg handig :) (bijvoorbeeld als je 2 menu's wilt links en rechts ;) )

"Divine Shields and Hearthstones do not make a hero heroic."


  • MaZo
  • Registratie: Mei 2002
  • Niet online
Ik zou zoiezo van die tabellen af stappen als ik jou was.

  • NitroX infinity
  • Registratie: Januari 2002
  • Laatst online: 00:29
Rowanov schreef op maandag 22 mei 2006 @ 13:15:
Mountaintop is nou niet precies het toonbeeld van een goede oplossing imho. Mijn vraag is of je gebruik maakt van vaste afmetingen voor de breedte van je blokken. Als je dit doet, kan je namelijk met een gif plaatje (met alleen de zwarte rand) voor de bovenkant en de onderkant af. Dan kom je uit op 2 gifjes per verschillende breedte. Ook zou ik zowieso de tabel pertinent niet gebruiken voor de opmaak en gewoon css gebruiken icm. semantische html.
Bedankt, dit zou opzich al een stuk minder code moeten opleveren.
Wel ideaal natuurlijk maar ik heb toch liever geen JavaScript.
Verwijderd schreef op maandag 22 mei 2006 @ 13:20:
hier een voorbeeld van hoe je dit zonder tabellen doet.
Dat is mij iets teveel afbeelding wat gebruikt wordt. maar toch interessant genoeg om te bookmarken.
skate master schreef op maandag 22 mei 2006 @ 13:21:
Op onderstaande manier zou ik het doen.

[...]


Wat je nu doet is je voorbeeld afbeelding als losse rechthoeken met afgeronde hoeken als
achtergrond van je div instellen.
Dan zet je in een apparte div wie je dmv top en left op de juiste plaats zet je tekst in de header.
Er kan op een enkele plaats iets niet helemaal correct zijn, maar je bent een stuk in de richting.
Zie mijn vorige reactie hierboven.
MaZo schreef op maandag 22 mei 2006 @ 13:31:
Ik zou zoiezo van die tabellen af stappen als ik jou was.
Ja, dat zou ik ook wel graag willen maar dan kom ik zelf bij grote achtergrond afbeeldingen uit en dan heb ik toch liever een boel code met kleine afbeeldingen (flexibeler).

Graphene; a material that can do everything, except leave the lab. - Asianometry


  • Der Rudi
  • Registratie: Mei 2002
  • Laatst online: 21-02 19:03
Zie ook http://www.sitepoint.com/...id=5&issue=20&format=html voor een heel goed artikel over afgeronde hoeken (kopje: Spanky Corners: Right Round, Baby verderop op pagina)

En er is ook een code generator http://tools.sitepoint.com/spanky/index.php

Succes!
Pagina: 1