html puslapių blokinio išdėstymo pavyzdžiai. Blokuoti CSS išdėstymą. Išskirtinės lentelės išdėstymo savybės

Svetainės maketavimas atliekamas dviem pagrindiniais būdais: lenteliniu ir blokiniu div maketus. Dėl CSS naudojimo blokų išdėstymas yra funkcionalesnis ir suteikia daugiau funkcijų.

Kaip veikia blokas?

Šio tipo išdėstymui atlikti naudojami du failai ( index.html ir style.css) su kodu HTML ir atitinkamai svetainės stilių.

Pirmajame faile jie rašomi tiesiogiai div- konteineriai, kurie yra savotiškas išdėstymo pagrindas, o antrasis apibūdina mūsų stiliaus ypatybes ir padėtį div- konteineriai.

Norėdami stebėti atliktų manipuliacijų rezultatus realiuoju laiku, naršyklės adreso juostoje turite įvesti: http://URL/testas.

Išdėstymo pagrindai

Dviejų stulpelių išdėstymas, kurį bandysime sukurti, gali būti pavaizduotas taip:

Visi mūsų maketo elementai turi būti sudėti į vieną bendrą, kad būtų galima nustatyti viso maketo parametrus. Bendrinamo konteinerio turinys bus div-s, kurios sudaro atskirus blokus. Naudojant CSS galime pritaikyti šiuos parametrus: dydį, vietą puslapyje, stilius ir spalvą.

Blokuoti svetainės išdėstymą

Kiekvienas išdėstymo elementas turi būti dedamas į atskirą konteinerį naudojant žymą div. Byloje CSS reikia pridėti elemento ypatybes, apibrėžiant elementų išvaizdos ir išdėstymo parametrus (plotis, aukštis, šriftas, dydis ir pan.).

Kad nesusipainiotumėte, kiekviename konteineryje turite įvesti šio bloko pavadinimą, jis atrodys maždaug taip:

"http://www.w3.org/TR/html4/loose.dtd">



Bloko išdėstymas – paimkite 2




Kairysis stulpelis

Puslapio turinys




Baigę manipuliacijas, turite atidaryti failą Stilius.css ir apibūdinkite šių konteinerių stilius. Visų pirma, būtina apibūdinti pagrindinių žymų stilius Turinys ir HTML, panaikindami puslapio paraštę, kad būtų užtikrintas suderinamumas tarp naršyklių:

kūnas, html (
paraštė: 0px;
užpildymas:0px;
}
kūnas, html (
paraštė: 0px;
užpildymas:0px;
}
#maket (
plotis: 800 pikselių;
paraštė: 0 automatinis;
}
#header(
fono spalva:#C0C000;
}
#left(
fono spalva:#00C0C0;
plotis: 200 pikselių;
plūdė:kairėje;
}
#turinys(
fono spalva:#8080FF;
paraštė-kairė: 202px;
}
#footer(
fono spalva: #FFC0FF;
}

Norėdami gauti išsamesnę meistriškumo klasę, kaip sukurti svetainę remiantis div, galite žiūrėti šiuos vaizdo įrašus:

https://www.youtube.com/watch?v=omyeH5h1lqA
https://www.youtube.com/watch?v=SQ7cWIy63yI

Pamokos tikslas:Įvadas į blokais pagrįstą CSS išdėstymą. Įgyti blokinio svetainės maketo naudojimo įgūdžių


  • Dirbant su sluoksniais arba, kitaip tariant, blokais ir div elementais, pagrindinė našta tenka CSS, nes Be savybių sluoksniai praktiškai nieko.
  • Deja, dirbant su blokais vis dar kyla problemų dėl kelių naršyklių suderinamumo. Tie. tos pačios savybės duoda skirtingus rezultatus skirtingose ​​naršyklėse. Siekiant kovoti su tokiomis problemomis, yra vadinamieji įsilaužimai. Nulaužti– tai technikų rinkinys, kai atskiroms naršyklėms pateikiamas kodas, kurį supranta tik ši naršyklė, o kiti ignoruoja.

Išskirtinės lentelės išdėstymo savybės

Tarkime, kad reikia sukurti puslapio šabloną su antrašte, porašte ir dviem stulpeliais.
Skirtumai:

Fiksuoto dizaino arba
standus blokų išdėstymas (dvi stulpeliai)

  • Fiksuotas išdėstymas apima tam tikro pločio sluoksnių naudojimą, kuris nustatomas pagal vartotojo monitoriaus skiriamąją gebą.
  • Kadangi tarp tinklo vartotojų populiariausia monitoriaus raiška yra 1024×768, patartina sutelkti dėmesį į ją. Bendras blokų plotis šiuo atveju yra 900–1000 pikselių (nedidelė pikselių dalis reikalinga slinkties juostoms ir naršyklės langų kraštinėms).
  • Pagrindinis blokas su turiniu dedamas centre, tada „laisvos“ paraštės aplink kraštus atrodo gerai net ir esant didelei monitoriaus skyrai.

1 pav. Fiksuoto dizaino pavyzdys

  • Bendrą plotį dizaineris gali pasirinkti „iš akies“ arba surinkęs papildomą informaciją.
  • Pavyzdys: sukurkite fiksuotą svetainės dizainą pagal aukščiau pateiktą vaizdą


    Spektaklis:
    • Visus pagrindinius puslapio elementus „suskirstome“ į blokus taip:
      • 1 blokas- pirmasis sluoksnis (id = "shapka"),
      • 2 ir 3 blokai yra viename bloke (id = "konteineris"),
      • 2 blokas- sluoksnis su meniu (id = "meniu"),
      • 3 blokas- sluoksnis su turiniu (id = "turinys"),
      • 4 blokas— sluoksnis su id="bottom" .

    Leiskite mums schematiškai pavaizduoti blokų išdėstymą:

    <kūnas > <div id = "shapka" > 1</div> <div id = "konteineris" > <div id = "meniu" > 2</div> <div id = "turinys" > 3</div> </div> <div id = "apačioje" > 4</div> </body>

    1
    3
    4

    1. Nustatykite „antraštės“ ypatybes (1 blokas)

    • Bendrą sluoksnių plotį pasirenkame „iš akies“ - 750 pikselių.
    • paraštė-dešinė: automatinis; paraštė-kairė: automatinis;

    • arba nustatykite aukštį naudodami įtrauką
    • Pavyzdžiui:

      paminkštinimas viršuje: 15px; paminkštinimas apačioje: 15 pikselių;

      pamušalas-viršus: 15px; paminkštinimas-apačioje: 15px;

      Visas antraštės kodas:

      #shapka( text-align: left; /* Lygiuoti vidinį turinį į kairę */ plotis: 750 pikselių; /* Bloko plotis ir bendras plotis */ fonas: #900000; /* Fono spalva */ aukštis: 50 pikselių; /* Aukštis blokas */ paraštė dešinėje: auto /* Automatinė įtrauka į dešinę */ paraštė į kairę: automatinė /* Automatinė įtrauka į kairę */ užpildymas: 10 taškų )

      2. Sukurkite konteinerio ypatybes

      • Nustatykite sudėtinio rodinio plotį: jis turi būti 750 pikselių + 20 pikselių (bendras išdėstymo plotis + užpildymas bendrame išdėstymo plotyje). Tie. konteineris neturi užpildymo, todėl padidinkite jo plotį 10 pikselių kairėje ir 10 pikselių dešinėje
      • Jei išdėstymas turi tilpti į kairę ekrano pusę, naršyklė tai padarys automatiškai. Mūsų atveju mes centruosime konteinerio bloką
      • #container ( plotis: 770 piks.; /* Sluoksnio plotis arba (išdėstymo plotis + 20) */ paraštė dešinėje: automatinė; /* Automatinė įtrauka į dešinę */ paraštė-kairė: automatinė; /* Automatinė įtrauka į kairę */ )

      3. Sukurkite 2 bloko meniu savybes

      • 2 sluoksnio numeris, kurio plotis 200 pikselių (plotis)
      • Tam pačiam sluoksniui (meniu) nustatome srautą aplink gretimą bloką, t.y. turtas plūduriuoja: kairėje
      • Vidines paraštes nustatome taip, kad tekstas „nepriliptų“ prie sluoksnio krašto (padding savybė)
      • Nustatykite teksto ir fono spalvą (fonas, spalva)
      • #menu ( plotis: 200 piks.; /* Sluoksnio plotis */ slankioji: kairėn; spalva: balta; /* Teksto spalva */ fonas: #008080; /* Fono spalva */ užpildymas: 10 piks.; /* Vidinės paraštės aplink turinį */ )

      4. Sukurkite 3 bloko – turinio savybes

      • Nustatykite sluoksnio plotį nuo 770 piks. iki 200 piks. = 570 piks. Bet! Kadangi užpildymą nustatome tiek 2, tiek 3 blokuose, turime atimti dar 40 pikselių: 20 – meniu bloko užpildymui, o 20 – turinio bloko užpildymui. Gaukime sluoksnio plotį 770 piks. – 200 tšk. – 40 piks. = 530 piks.
      • Mes nustatome apvyniojimą plaukioti: kairėje , neįskaitant „Internet Explorer“ naršyklės klaidos: jei nenustatysite nuosavybės, tarp sluoksnių atsiras tarpas. Be to, jei šios savybės nenustatysite, blokas atsiras už meniu bloko ir tik jo turinys (tekstas) tekės aplink meniu bloką dešinėje.
      • Nustatykite fono spalvą (foną) ir vidines paraštes (pamušalas)
      • #content ( /* Dešinysis stulpelis */ plotis: 550 tšk.; /* Sluoksnio plotis */ slankusis: kairėje; /* Apvyniojimas gretimu sluoksniu */ užpildymas: 10 pikselių; /* Vidinės paraštės aplink turinį */ fonas: #e0e0e0; /* Fono spalva */ )

      5. Sukurkite 4 bloko ypatybes – „rūsys“

      • Nustatykite sluoksnio plotį iki 750 pikselių
      • Šiam blokui reikia nuimti įvyniojimą, t.y. nustatyti aiškią savybę
      • Vidinių užpildymo paraščių nustatymas
      • Nustatykite fono (fono) ir teksto (spalvos) spalvą
      • Centruokite bloką (paraštė - dešinė ir paraštė - kairė)
      • #bottom( width:750px; /* Sluoksnio plotis */ clear:left; /* grąžina blokavimą ir padėkite sluoksnį kairėje */ užpildymas: 10 pikselių; /* Vidinės paraštės aplink turinį */ fonas:#444; /* background */ color :#fff /* text color */ margin-right: auto /* Automatinis įtraukimas į dešinę */ margin-left: automatinis */ )

      Galutinis kodas: viskas kartu

      <stiliaus tipas = "text/css" >

      1
      3
      4

      Rezultatas:

      2 pav. Tvirtas blokų išdėstymas su dviem kolonomis

      Fiksuotas trijų stulpelių dizainas

      Naudojant fiksuotą trijų stulpelių išdėstymo dizainą, yra du pagrindiniai modulinio tinklelio kūrimo būdai:

    1. Ypatybės naudojimas stulpeliams išdėstyti vienas šalia kito.
    2. Naudojant tų CSS savybių rinkinį, skirtą sluoksniams nustatyti.

    Panagrinėkime pirmąjį atvejį.

    Plūduriuojančios savybės naudojimas trijų stulpelių išdėstymui

    Įjungta ryžių. 3— turto panaudojimo trijų stulpelių išdėstymui rezultatas. Tiesą sakant, naudojami 6 sluoksniai – atskirai stulpelių antraštėms ir atskirai pačioms stulpelėms.

    Ryžiai. 3. Pataisytas trijų stulpelių dizainas

    Pavyzdys: sukurti tinklalapį su trijų stulpelių išdėstymu, parodytu ryžių. 3. Naudokite fiksuoto bloko išdėstymo metodus


    Spektaklis:
    • Apibrėžkime tris sluoksnius antraštėms (#header...) ir tris sluoksnius stulpeliams (#col...).
    • Kadangi stulpeliai ir jų antraštės yra dviejose skirtingose ​​eilutėse, juos sujungsime į konteinerius (class="container").
    • Gauname scheminį blokų išdėstymo vaizdą:

    Gauname tokią html struktūrą:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <kūnas > <div class = "konteineris" > <div id = "header1" > Jevgenijus Jevtušenko</div> <div id = "header2" > Valerijus Bryusovas</div> <div id = "header3" > Eduardas Asadovas</div> </div> <div class = "konteineris" > <div id = "col1" > Svajoju apie seną draugą<br/> kuris tapo priešu<br/> bet aš nesvajoju apie priešą,<br/> bet to paties draugo.<br/> Jo nėra su manimi<br/> bet dabar jis visur aplink<br/> ir galva eina<br/> nuo sapnų aplinkui.</div> <div id = "col2" > Didysis yra nepagaunamas šalia,<br/> Tik iš tolo tai iškilminga,<br/><br/> </div> <div id = "col3" ><br/><br/><br/> </div> </div> </body>

    Jevgenijus Jevtušenko
    Valerijus Bryusovas
    Eduardas Asadovas
    Svajoju apie seną draugą
    kuris tapo priešu
    bet aš nesvajoju apie priešą,
    bet to paties draugo.
    Jo nėra su manimi
    bet dabar jis visur aplink
    ir galva eina
    nuo sapnų aplinkui.
    Didysis yra nepagaunamas šalia,
    Tik iš tolo tai iškilminga,
    Mes visi praeiname prieš didįjį
    Ir matome tik atsitiktinę nuorodą.
    Bet kokiu klausimu su maksimaliais sunkumais
    Vis dar yra vienas problemos sprendimo būdas:
    Noras yra daugybė galimybių,
    Ir nenoro priežasčių yra daug.

    2. Antraštių (antraštės... parinkiklis) ir stulpelių (stulpelio... parinkiklis) stilių pridėjimas

    • Stulpelių ir antraščių plotį padarysime visiems vienodus. Kadangi yra 3 stulpeliai, o vidutinis puslapio plotis turėtų būti maždaug 700-900 pikselių, stulpelio plotį nustatysime į 250 pikselių.
    • #header1, #header2, #header3, #col1, #col2, #col3 (plotis: 250 piks.; /* Stulpelio plotis */ )

    • Pridėkime vidines paraštes (įtraukas iš teksto turinio) – užpildymą ir išorines įtraukas, kad tarp stulpelių būtų vietos. Kadangi ypatybės nustatomos visiems stulpeliams iš karto, o pats išdėstymas yra ne centre, o išlygiuotas į kairę, įtrauką nustatysime tik vienoje pusėje – kairėje – visiems stulpeliams vienu metu (margin-left ).
    • #header1, #header2, #header3, #col1, #col2, #col3 ( plotis: 250 tšk.; /* Stulpelio plotis */ užpildymas: 5 pikseliai; /* Paraštės aplink tekstą */ paraštės kairėje: 5 pikseliai; /* Kairė paraštė * / )

    • Taip pat viršuje pridėsime išorinę paraštę, užtikrinančią vertikalų tarpą tarp antraščių ir stulpelių, taip pat paraštę antraštėms nuo puslapio viršaus (margin-top).
    • #antraštė1, #antraštė2, #antraštė3, #stulpelis1, #stulpelis2, #stulpelis3 ( ... plaukioti: kairėje; )

    • Pridėkite blokų kraštą ir nustatykite šrifto parametrus (šrifto šeima, šrifto svoris, šrifto dydis, spalva).
    • #header1, #header2, #header3, #col1, #col2, #col3 ( ... kraštinė: 1px vientisa juoda; /* Kraštinė aplink sluoksnį */ šriftų šeima: Verdana, Arial, be serifo; /* Ne šriftas arba smulkintas šriftas */ šrifto dydis: 80% /* Šrifto dydis */ spalva: balta */ )

      Mes gauname kodą:

      #header1 , #header2 , #header3 , #col1 , #col2 , #col3 ( plotis : 250px ; /* Stulpelio plotis */ pamušalas: 5px; /* Paraštės aplink tekstą */ /* Viršutinis paminkštinimas */ plūdė: kairė; /* Sujungti stulpelius horizontaliai */ /* Kraštinė aplink sluoksnį */ /* Neserijinis arba sans serif šriftas */šrifto svoris: paryškintas; /* Pusjuodis pavadinimo tekstas */šrifto dydis: 80%; /* Šrifto dydis */ spalva: balta; /* Pavadinimo teksto spalva */ }

      #header1, #header2, #header3, #col1, #col2, #col3 ( plotis: 250 tšk.; /* Stulpelio plotis */ užpildymas: 5 pikseliai; /* Paraštės aplink tekstą */ paraštės kairėje: 5 piks.; /* Kairė paraštė * / paraštės viršus: 2px; /* Viršutinė paraštė */ plaukimas: kairėn /* Stulpelių sujungimas horizontaliai */ kraštinė: vientisas juodas /* Rėmas aplink sluoksnį: Verdana, Arial, sans-serif; /* Ne serif arba sans serif šriftas */ šrifto svoris: paryškintas /* šrifto dydis: 80% /* Šrifto dydis */ spalva: balta;

    • Kiekvienam parinkikliui nustatykime foną atskirai.
    • #header1 ( fonas : #B38541 ; ) #header2 ( fonas : #008159 ; ) #header3 ( fonas : #006077 ; ) #col1 ( fonas : #EBE0C5 ; ) #col2 ( fonas : #BBE1C4 ; ) #col3 ( fonas #ADD0D9 ;

      #header1 ( fonas: #B38541; ) #header2 ( fonas: #008159; ) #header3 ( fonas: #006077; ) #col1 ( fonas: #EBE0C5; ) #col2 ( fonas: #BBE1C4; ) #col3 ( fonas: #ADD0D9;

    Pažiūrėkime į tarpinį rezultatą:

    Ryžiai. 4. Tarpinis rezultatas

    3. Konteinerių stiliaus nustatymas

    • Dabar reikia sujungti antraštes ir stulpelius į atskirus konteinerio sluoksnius ir suteikti jiems tinkamą stilių - atšaukti vyniojimą (išvalyti)
    • .container (aišku: abu; /* Atšaukia plūdinį vyniojimą */ }

      Konteineris (skaidrus: abu; /* Atšaukia plūdinį įvyniojimą */ )

    • Dabar belieka pakeisti teksto šriftą stulpeliuose, keičiant jo dydį, stilių ir spalvą.

    #col1, #col2, #col3 ( šriftų šeima: "Times New Roman", Times, serif; /* Serif arba serif šriftas */ šrifto dydis: 100%; /* Šrifto dydis */ šrifto svoris: normalus ; /* Normalus stilius */ spalva: juoda /* Teksto spalva */ )

    Galutinis kodas: viskas kartu

    <stiliaus tipas = "text/css" >

    Jevgenijus Jevtušenko
    Valerijus Bryusovas
    Eduardas Asadovas
    Svajoju apie seną draugą
    kuris tapo priešu
    bet aš nesvajoju apie priešą,
    bet to paties draugo.
    Jo nėra su manimi
    bet dabar jis visur aplink
    ir galva eina
    nuo sapnų aplinkui.
    Didysis yra nepagaunamas šalia,
    Tik iš tolo tai iškilminga,
    Mes visi praeiname prieš didįjį
    Ir matome tik atsitiktinę nuorodą.
    Bet kokiu klausimu su maksimaliais sunkumais
    Vis dar yra vienas problemos sprendimo būdas:
    Noras yra daugybė galimybių,
    Ir nenoro priežasčių yra daug.

    Rezultatas:

    Ryžiai. 5. Rezultatas

    Sluoksnio padėties nustatymas trijų stulpelių išdėstymui

    Paimkime kaip pavyzdį maketą, susidedantį iš trijų stulpelių, atskirtų skiriamąja linija (6 pav.).

    Ryžiai. 6. Sluoksnių išdėstymas trijų stulpelių išdėstymui su skirstytuvu


    Pavyzdys: sukurti tinklalapį su trijų stulpelių išdėstymu su skiriamąja linija, parodyta ryžių. 6. Naudokite fiksuoto išdėstymo metodus su sluoksnių padėtimi


    Spektaklis:

    1. HTML kodo struktūros sukūrimas

    • Šiam išdėstymui kiekvienam stulpeliui pakanka sukurti tris div sluoksnius.

    Taigi struktūra bus paprasta:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <kūnas> <div id= "col1"> Ivanas Buninas </ br></ br> </ br> </ br> </ br> </ div> <div id= "col2"> </ br> Langas šviečia auksine spalva. </ br> </ br> Viskas padengta baltu sniegu. </ div> <div id= "col3"> Ir visi rytai šviesūs ir švarūs </ br> </ br> </ br> Chrizantemos ant mano lango. </ br></ br> 1903 </ div> </ kūnas>

    Ivanas Buninas

    Ant lango sidabrinis su šerkšnu,
    Per naktį pražydo chrizantemos.
    Viršutiniuose languose - dangus ryškiai mėlynas
    Ir įstrigo sniego dulkėse.
    Teka saulė, linksma nuo šalčio,
    Langas šviečia auksine spalva.
    Rytas tylus, džiugus ir jaunas.
    Viskas padengta baltu sniegu.
    Ir visi rytai šviesūs ir švarūs
    Viršuje pamatysiu spalvas,
    Ir iki pietų jie bus sidabriniai
    Chrizantemos ant mano lango.

    1903

    2. Stulpelių stilių pridėjimas

    • Nustatykime vienodą stulpelių plotį (plotį) ir vidines paraštes vertikaliai ir horizontaliai (padding).
    • #col1, #col2, #col3 (plotis: 250px; /* Stulpelio plotis */ užpildymas: 0 6px; )

    • Norėdami pašalinti sluoksnių blokavimą, t.y. norėdami juos išdėstyti vienas šalia kito horizontaliai, turite nustatyti css float savybę.
    • #col1, #col2, #col3 { plotis: 250 piks; /* Stulpelio plotis */ kamšalas: 0 6 piks; /* Paraštės vertikaliai ir horizontaliai */ plūdė: paliko; /* Apvyniokite sluoksnius */ }

      #col1, #col2, #col3 (plotis: 250px; /* Stulpelio plotis */ užpildymas: 0 6px; /* Vertikalios ir horizontalios paraštės */ slankioji: kairė; /* Sluoksnio apvyniojimas */ )

    • Kadangi skiriamoji sienelė turi būti tik vidinėse sluoksnių pusėse, rėmelį reikia pridėti tik prie dviejų sluoksnių vienoje pusėje (kraštinėje).
    #col1, #col2 { siena-dešinė: 1px kietas #000 ; /* Paraštės vertikaliai ir horizontaliai */ plūdė: paliko; /* Apvyniokite sluoksnius */ } #col1, #col2 { siena-dešinė: 1px kietas #000 ; /* Eilutės parametrai teksto dešinėje */ }

    #col1, #col2, #col3 (plotis: 250px; /* Stulpelio plotis */ užpildymas: 0 6px; /* Vertikalios ir horizontalios paraštės */ slankioji: kairė; /* Sluoksnio apvyniojimas */ ) #col1, #col2 ( kraštinė -dešinėje: 1px solid #000 /* Eilučių parinktys dešinėje nuo teksto */ )

    </ stilius> </ galva> <kūnas> <div id= "col1"> Ivanas Buninas </ br></ br> Ant lango sidabrinis su šerkšnu, </ br> Per naktį pražydo chrizantemos. </ br> Viršutiniuose languose - dangus ryškiai mėlynas </ br> Ir įstrigo sniego dulkėse. </ div> <div id= "col2"> Teka saulė, linksma nuo šalčio, </ br> Langas šviečia auksine spalva. </ br> Rytas tylus, džiugus ir jaunas. </ br> Viskas padengta baltu sniegu. </ div> <div id= "col3"> Ir visi rytai šviesūs ir švarūs </ br> Viršuje pamatysiu spalvas, </ br> Ir iki pietų jie bus sidabriniai </ br> Chrizantemos ant mano lango. </ br></ br> 1903 </ div> </ kūnas>

    Ivanas Buninas

    Ant lango sidabrinis su šerkšnu,
    Per naktį pražydo chrizantemos.
    Viršutiniuose languose - dangus ryškiai mėlynas
    Ir įstrigo sniego dulkėse.
    Teka saulė, linksma nuo šalčio,
    Langas šviečia auksine spalva.
    Rytas tylus, džiugus ir jaunas.
    Viskas padengta baltu sniegu.
    Ir visi rytai šviesūs ir švarūs
    Viršuje pamatysiu spalvas,
    Ir iki pietų jie bus sidabriniai
    Chrizantemos ant mano lango.

    1903

    Trijų stulpelių dizainas paruoštas!

    Sveiki, draugai!

    Mes ir toliau studijuojame maketavimą ir šiandien pereiname prie įdomiausios dalies.

    Tikrai jau girdėjote šią koncepciją "bloko išdėstymas". Tačiau neišmanančiam žmogui ši sąvoka nieko nereiškia. Todėl: kas žino – gerai padaryta! Kas nežino, skaitykite atidžiau.

    Bloko išdėstymas yra tinklalapio kodo išdėstymas naudojant universaliąsias sudėtinio rodinio žymas

    .

    Apie tai šiek tiek parašiau straipsnyje „“. Čia mes kalbėsime išsamiau ir konkrečiai.

    1. Kodėl blokų išdėstymas?

    Kadaise, senovėje, mūsų tolimi protėviai išklodavo svetaines naudodami lenteles. Visi puslapio elementai buvo išdėstyti atskirose ląstelėse, ląstelės buvo sugrupuotos į kitas, didesnes ląsteles, o jos, savo ruožtu, buvo svarbiausioje ląstelėje - pačiame svetainės puslapyje.

    Tai buvo labai nepatogu, nes kodas pasirodė per daug perkrautas ir sunkiai suprantamas, nes kiekvienai langeliui apibūdinti reikėjo naudoti kelias žymas.

    Šiais laikais beveik niekas nenaudoja lentelės maketavimo, nors kai kurie puslapio elementai gaminami naudojant lenteles.

    Nekelkime senų dalykų. Pereikime prie bloko išdėstymo.

    Blokų išdėstymas leidžia sukurti puslapio struktūrą naudojant atskirus blokus (konteinerius)

    ). Jie yra tarsi plytos, sudarančios svetainės skeletą.

    Blokų išdėstymo pranašumai, palyginti su lentelės išdėstymu:

    • Kiekvienas blokas aprašomas viena žyma;
    • Konteinerių lizdų struktūra patogiai sekama;
    • Konteineriai
      galite pozicionuoti ne tik tėvų viduje, bet ir kitais būdais (pavyzdžiui, absoliučiu padėties nustatymu) - apie tai kalbėsime vėliau;
    • Svetainės puslapių įkėlimo greitis gerokai padidėja. Remiantis kai kuriais skaičiavimais, greitis, palyginti su lentele, padidėja kažkur nuo trijų iki keturių kartų;
    • Bloko išdėstymas turi žymiai mažesnį kodo kiekį, palyginti su lentelės išdėstymu. Tai reiškia, kad taip pat sumažėja serverio apkrova;
    • svetainės su blokiniu išdėstymu yra rodomos gana teisingai visose naršyklėse, bet kokia ekrano raiška;
    • Lengvai integruojamas į bet kurią TVS, nesukeldamas problemų.

    2. Blokų išdėstymo pagrindas yra konteineris

    Naudojant blokų išdėstymą, visi puslapio elementai susideda iš blokų (logiška, ar ne?).

    Blokuoti

    yra stačiakampio formos plotas. Pagal numatytuosius nustatymus blokas užima visą pirminio elemento plotį, jo aukštis priklauso nuo jo turinio. Blokai yra išdėstyti vertikaliai, tai yra, jei puslapio kode įrašyti keli blokai iš eilės, jie naršyklėje bus rodomi vienas po kito.

    Jei mums reikia išdėstyti kelis blokus horizontaliai, tada jų savybėse nustatome parametrą „ tekėti aplinkui" (plūdė). Bet apie tai vėliau.

    Pagrindinės bet kurio bloko savybės yra šios: užpildas, kraštinė ir paraštės.

    Linkiu sėkmės įvaldant žiniatinklio valdytojo įgūdžius!

    Išdėstymas su div blokais jau seniai tapo standartu ir turi daug pranašumų, palyginti su lentelių išdėstymu. Tačiau iš tikrųjų pradedantieji kūrėjai yra sumišę dėl tų pačių blokų elgesio.

    Pažvelkime į pagrindinius bloko išdėstymo taškus. Dabar neatsižvelgsime į html5 standartą, o tiesiog pažvelgsime į maketavimo pagrindus su div blokais, kurie naudojami kuriant maketą ar kokį atskirą puslapio komponentą.

    Kas laikomas blokiniu elementu?

    Pagal numatytuosius nustatymus tokio elemento plotas puslapyje yra stačiakampis, jis užima visą galimą plotį ir prasideda nuo naujos eilutės.
    Dažniausiai blokų išdėstymui naudojamas elementas yra universalus elementas

    .

    Taigi, nuo paprasto iki sudėtingo. Pažiūrėkime, kaip „div“ rodomi pagal numatytuosius nustatymus, stiliams nepaveikiant jų padėties. Aiškumo dėlei pridėsime stilių prie elementų eilutėje naudodami stiliaus atributą.

    1 blokas

    2 blokas

    3 blokas

    Pridėkime kiekvieno bloko pločio reikšmę:

    1 blokas

    2 blokas

    3 blokas

    Matyti, kad kiekvienas blokas, pagal specifikaciją, yra naujoje linijoje. Tai normalus jų elgesys.

    Dabar kyla klausimas, kaip pozicionuoti Div blokai vienoje eilutėje, vienas po kito?

    Šiuo tikslu yra savybė, kuri nustato, kurioje pusėje blokas bus priverstas lygiuotis. Tuo pačiu metu iš kito krašto jis gali tekėti aplink kitus elementus.

    Plūdės savybė turi šias reikšmes:

    • kairėje - blokas išlygiuotas su kairiuoju kraštu, teka į dešinę
    • dešinė - blokas išlygiuotas į dešinįjį kraštą, teka į kairę
    • none – įvyniojimas nenurodytas, blokas veikia pagal nutylėjimą, kaip ir ankstesniuose pavyzdžiuose.

    Prie savo blokų pridėkime float:left, kad blokai būtų sulygiuoti į kairę:

    1 blokas

    2 blokas

    3 blokas

    Dėl to blokai išsirikiavo vienoje eilutėje. Gerai, tarkime, kad norėjome pridėti dar vieną div apačioje ir tai padarysime nenurodydami slankiosios savybės:




    1 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    2 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    3 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    4 skyrius. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    1 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    2 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    3 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    4 skyrius. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Kodėl taip atsitiko? Trumpai tariant, taip nutinka todėl, kad plūduriuojantys elementai iškrenta iš dokumento srauto. Tačiau tai yra atskiro straipsnio tema. Čia susipažinsime su nauja savybe, kuri valdo slankiųjų elementų elgesį:

    • kairėje – išjungiamas vyniojimas kairėje pusėje, visi elementai bus rodomi naujoje eilutėje (po elementu)
    • teisingas – neleidžia elementui apsivynioti dešinėje pusėje
    • abu - draudžia tekėti aplink elementą iš abiejų pusių, rekomenduojama jį naudoti, kai aiškiai reikia parodyti elementą naujoje eilutėje arba nežinoma, kurią pusę galima apvynioti aplink kitus elementus;

    Prie 4 bloko pridėkime ypatybę clear:left, kuri neleis šiam elementui tekėti aplink kitus kairėje pusėje esančius slankiuosius elementus.

    1 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    2 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    3 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    4 skyrius. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    1 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    2 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    3 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    4 skyrius. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    4 blokas dedamas į naują eilutę, kaip mums reikia.

    Šiuo atveju mes žinome, kaip yra kiti blokai, todėl pavyzdyje iš karto nurodėme aiškiai: kairėje. Būna situacijų, kai tiksliai nežinome, į kurią pusę susidurs plaukiojantis blokas, todėl tokiais atvejais verta nurodyti aiškų:tiek, kas panaikina srautą iš abiejų pusių. Dabar mes supratome, kaip vienoje eilutėje išdėstyti div blokus horizontaliai.

    Atminkite, kad plūduriuojantys blokai dedami ant tos pačios linijos, jei leidžia pirminio elemento plotis. Jei bloko elementai netelpa į eilę, jie persikelia į naują eilutę. Jei tai labai svarbu, pavyzdžiui, dėliojant maketus, reikia į tai atsižvelgti, o blokams su plūdine būtinai nustatykite plotį – fiksuotą (px) arba guminį (%, rem ir pan.). Toliau pažiūrėkime į tokias situacijas.

    Kaip paveikti blokus, jei norime šiuos blokus sudėti į centrą?

    Klasikinis sprendimas būtų pridėti pirminį bloką ir naudoti paraštę: 0 auto;

    Kodėl tėvui davėme klasę.vyniotuvą? „wrapper“ reiškia „įvynioklis“. Tai savotiška visuotinai priimta praktika, apibrėžianti klasės pavadinimą, kai elementas apvynioja kitus blokus ir taip leidžia juos valdyti/įtakoti keičiant patį pagrindinį elementą.

    Paimkime žymėjimą iš ankstesnių pavyzdžių ir patobulinkime jį.


    1 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    2 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    3 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    4 skyrius. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    1 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    2 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    3 blokas. Lorem ipsum dolor sit amet, consectetur adipisicing elit

    4 skyrius. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Čia viskas atrodo paprasta.

    Ir jei mums nepatinka, kad tekstas prilimpa prie pagrindinio bloko krašto ir norime pridėti laukų nekeisdami žymėjimo, tik naudodami css. Pridėkime užpildymo ypatybę prie elementų:

    Blokas 1. Loremas

    2 blokas. Lorem ipsum

    3 blokas. Lorem ipsum

    Blokas 4. Loremas

    Ir mes matome, kad mūsų išdėstymas subyrėjo! 3 blokas kažkur dingo. Kodėl taip atsitiko? Atsakymas paprastas. Pridėję laukus prie elementų padidinome jų plotį. Dabar vertės yra šios:

    1 blokas: 10 + 200 + 10 = 220 taškų

    2 blokas: 10 + 150 + 10 = 170 taškų

    3 blokas: 10 + 100 + 10 = 120 taškų

    4 blokas: 10 + 450 + 10 = 470 taškų

    220 + 170 + 120 = 510 taškų

    Bendras trijų blokų plotis yra 510, jie netelpa į pagrindinio bloko plotį (450), todėl perkeliami į naują eilutę.

    Kaip tai ištaisyti? Galite atlikti šiuos veiksmus:

    1. Iš naujo nustatykite kiekvieno bloko pločio reikšmes, atsižvelgiant į paraštes. Sumažinus blokų dydžius. Viskas vėl tvarkingai tilps į vieną eilutę. Ar sutinkate, kad tai nepatogu? Kiekvieną kartą einu į maketą ir ką nors redaguoju.
    2. Naudokite langelio dydžio savybę: border-box. Taip, kad skaičiavimas būtų paimtas iš viso bloko pločio. Patariu pasidomėti, koks yra css bloko modelis.

    Naudojant antrąjį variantą, viskas pasirodo taip:


    Blokas 1. Loremas

    2 blokas. Lorem ipsum

    3 blokas. Lorem ipsum

    Blokas 4. Loremas

    Blokas 1. Loremas

    2 blokas. Lorem ipsum

    3 blokas. Lorem ipsum

    Blokas 4. Loremas

    Dabar sudėkime visą gautą informaciją ir pabandykime sukurti paprastą standartinį trijų stulpelių maketą su lanksčiu išdėstymu, kuris išsitemps iki maksimalaus 900px, po kurio visas maketas bus išdėstytas centre.

    Sukurkite išdėstymo žymėjimą:

    dokumentas

    Svetainės antraštė
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odit rem fugit itaque, est impedit aperiam a autem repellat vitae porro expedita, cumque nulla, velit. Soluta velit eos, quia. Fugiat voluptates nisi aliquid eum sapiente sunt nobis, adipisci guessnda earum!

    Rašome stilius:

    Body (maksimalus plotis: 900 tšk.; /* apriboti maksimalų plotį */ paraštė: 0 automatinis; ) /* visiems korpuso blokams pakeisti bloko pločio skaičiavimo algoritmą ir pridėti 10 taškų paraštes prie visų blokų */ body div ( - webkit-box-sizing: border-box: 10px padding: #8ED9B6; : left; ) .content ( float: left; plotis: 60%; ) .right-sidebar ( plotis: 20%; fonas: #FF9282; float: left; ) .footer ( fonas: #000; aiškus: abu; / * išjungti vyniojimą iš abiejų pusių, blokas rodomas naujoje eilutėje */ spalva: #ccc;

    Jei kažkas neaišku, klauskite komentaruose.

    Laba diena draugai! Kažkaip per kelias html pamokas kalbėjau ir naudojau tokią sąvoką kaip div išdėstymas.

    Tikriausiai turite klausimų, ypač jei esate naujokai, kas tai yra?

    Šiandienos straipsnyje išsklaidysiu visas jūsų abejones ir atsakysiu į klausimus apie tai, kokie yra div blokai

    Pradėkime mokytis.

    HTML div blokai ir išdėstymas

    Kad netrukdytų ir nešiukšlintų jūsų smegenys, trumpai pasakysiu, kad anksčiau visi interneto dizaineriai ir kūrėjai kurdami puslapius ir svetaines naudojo lentelės išdėstymą, kur kiekviena ląstelė atstojo konkretų elementą. Tai atrodė maždaug taip:

    Štai koks buvo svetainės kūrimas. Tai labai primityvus pavyzdys, tačiau galite aiškiai įsivaizduoti, kaip tais tolimais laikais buvo kuriamos interneto svetainės. Interneto technologijos nestovi vietoje ir kažkuriuo momentu pas mus atėjo html div išdėstymo koncepcija. Ir tada, kaip sakoma, viskas prasidėjo.

    Jo svarba kuriant svetaines tikrai didelė. Dabar kurti svetaines ir tvarkyti html blokus tapo lengviau nei bet kada. Svetainės pradėjo atrodyti gražios ir įdomios. Dabar visas pasaulis tik skinasi kelią.

    Taip dabar galime supaprastintai pavaizduoti div html blokų naudojimo modelį.

    Patogumas slypi blokų nepriklausomybėje vienas nuo kito, juos lengva valdyti atskirai, perkelti juos kaip norite, pridėti stilių, galite nustatyti bendrus stilius per CSS taisykles kelioms Div grupėms. Sutikite, tai patogu.

    Div žymų naudojimo pavyzdžiai

    Pažvelkime į kelis praktinius pavyzdžius, kaip HTML puslapyje galite taikyti div žymas. Paprastame pavyzdyje mes sukursime 4 blokus puslapyje. Šiame ir būsimuose pavyzdžiuose visada naudosiu Notepad++.

    Taigi leiskite man paaiškinti. Turime dizainą < ! DOCTYPE html > jis tinka šiuolaikinėms naršyklėms ir palaiko HTML 5 žymėjimą, apie tai kalbėsime būsimuose numeriuose.

    Tada atsidaro didelis „pagrindinis“ konteineris < html > . Jis yra suporuotas ir turi būti uždarytas pabaigoje! Tada atidaroma aptarnavimo etiketė < head > , kuris taip pat yra suporuotas ir kuriame yra paslaugos informacija apie kodavimą < meta charset > , svarbiausio SEO puslapio pavadinimo pavadinimas, aprašymas (jo čia neįdėjau, nes nėra poreikio, analizuojame grynai techninį aspektą), CSS stiliai, šriftai (Google Fonts biblioteka), JavaScript čia taip pat.

    Toliau ateina žyma < body > . Jame jau bus saugomi visi mūsų blokų ženklai ir visi konteineriai su etiketėmis. Tiesiog prisimink tai kaip didžiulę „statinę“.

    Ir galiausiai, čia ateina mūsų div konteineriai.

    < div class = "header" > < / div >

    < div class = "sidebar" > < / div >

    < div class = "content" > < / div >

    < div class = "footer" > < / div >

    Svarbu! Jie taip pat turi būti suporuoti kartu su kitomis žymomis.

    Kaip matote, kiekvienas div blokas turi klasės atributą, po lygybės ženklo galite juos nustatyti savarankiškai ir savavališkai. Šios klasės sukurtos specialiai CSS. Tai yra, naršyklė ateina į puslapį, pamato div bloką ir pasižiūri kokia informacija jame yra ir nueina į CSS failą ir ten ieško reikiamos klasės.

    Galite nustatyti ne tik klasės atributą, bet galite naudoti ir id (identifikatorių). Galite užduoti klausimą: „Koks man skirtumas, kurį naudoju? Aš atsakysiu, galite naudoti bet kokį maketavimo metodą. Tik su vienu skirtumu – pirmenybė id turi daugiau privilegijų nei klasė .

    Paaiškinsiu tai toliau pateiktame vaizdo įrašų lapelyje.

    Kiekvienas turi savo svetainių kūrimo stilių, aš norėčiau naudoti klasę, nes šis įrašas CSS rodomas su tašku . parinkiklis

    O, beje, noriu pasakyti, kad antraštė, šoninė juosta, turinys, poraštė yra visi CSS parinkikliai, ir jie jau turės atributus.

    Taigi, mes ir toliau valome netvarką vartotojų galvose. Sukūrėme div blokus su klase, dabar pereikime prie CSS.

    Atidarykime savo puslapio css taisykles head tag, tai yra, mes ją suformatuosime. Padarykime tai taip:

    Įrašas bus toks (tiesiog nukopijuokite ir įklijuokite savo pavyzdyje ir pažiūrėkite į naršyklę)

    Div žymų naudojimo pavyzdys

    < ! DOCTYPE HTML >

    < html >

    < head >

    < meta charset = "utf-8" >

    < title >Div žymų naudojimo pavyzdys< / title >

    < / head >