რატომ არის CSS Grid უკეთესი Bootstrap Framework-ზე? CSS Grid იდეალურია საპასუხო განლაგებისთვის

გამარჯობა ყველას! დღეს ჩვენ ვისაუბრებთ რა არის ქსელის სისტემები?ან უბრალოდ მოქნილი ბადეები ადაპტური განლაგებით.

ჯერ განვსაზღვროთ რა არის ეს ბადის სისტემა.

ბადის სისტემა- კლასზე დაფუძნებული სტილის კოლექცია, რომელიც მომხმარებელს საშუალებას აძლევს აკონტროლოს გვერდის განლაგება რიგებისა და სვეტების სისტემის გამოყენებით.

წარმოვიდგინოთ, რომ გვაქვს ბლოგის გვერდი. იგი დაყოფილია 2 სვეტად: ძირითადი ნაწილი მარცხნივ და გვერდითი ზოლი მარჯვნივ. შევეცადოთ შევქმნათ მოქნილი ბადე ასეთი გვერდისთვის.

კარგი, ჯერ რაღაც ძირითადი უნდა გავაკეთოთ, მაგრამ... htmlმარკირება






აქ გვაქვს ბლოკი, რომელიც შეიცავს მთელ გვერდს, შეიცავს ბლოკს ბლოგით, რომელიც შეიცავს 2 ბლოკს: გვერდის ძირითად ნაწილს და გვერდითა ზოლს.

ასე რომ, ჩვენი მთელი გვერდი იქნება ზომა 960 პიქსელი. მთელი ბადე დაყოფილია 12 სვეტად 69 პიქსელი. თითოეული. ბლოგის ნაწილი ფართო იქნება 900 პიქსელი. გვერდის ძირითადი ნაწილი იქნება 566 პიქსელი, გვერდითი ზოლი - 331 პიქსელი.

ეს არის ის, რასაც საბოლოოდ ვიღებთ

#გვერდი (
ზღვარი: 36px ავტო;
სიგანე: 960px;
}

ბლოგი (
ზღვარი: 0 ავტო 53 პიქსელი;
სიგანე: 900px;
}

ბლოგი.მთავარი (
float: მარცხენა;
სიგანე: 566px;
}

ბლოგი .გვერდითი პანელი (
float: მარჯვნივ;
სიგანე: 331px;
}

ყველაფერი კარგად იქნება, მაგრამ, როგორც ხედავთ, ეს ყველაფერი სტატიკურია, მითითებულია პიქსელებში. ჩვენ გვსურს, რომ ჩვენმა ბადემ შეცვალოს მისი ზომა იმისდა მიხედვით, თუ რომელ ეკრანზე იხსნება გვერდი, ამიტომ ყველაფერი უნდა დავაყენოთ პროცენტი. მოდით გავაკეთოთ ეს.

ამისათვის არის იგივე ფორმულა, რაც ფონტებისთვის

მიზანი / კონტექსტი = შედეგი

მოდით გადავიყვანოთ მთელი გვერდის ბლოკი პიქსელებიდან პროცენტებში.

#გვერდი (
ზღვარი: 36px ავტო;
სიგანე: 90%;
}

90% არჩეულია, რადგან ამ შემთხვევაში ჩვენ ასევე გვექნება ჩაღრმავები გასწვრივ კიდეებზე 5% . თუმცა, თქვენ შეგიძლიათ აირჩიოთ განსხვავებული მნიშვნელობა.

ჩვენ ვიყენებთ ჩვენს ფორმულას: 900 / 960 = 0.9357

მოდით გავამრავლოთ შედეგი 100 პროცენტის მისაღებად და ჩვენ დავარეგისტრირებთ მას ჩვენს css.

ბლოგი (
ზღვარი: 0 ავტო 53 პიქსელი;
სიგანე: 93,75%;
}

იგივე უნდა გაკეთდეს სვეტებთან, მაგრამ შენიშნეთ, რომ კონტექსტი შეიცვალა. იმიტომ რომ სვეტები არის კლასის მქონე ბლოკის შიგნით .ბლოგი, მაშინ ეს იქნება კონტექსტი. მოდით გავაკეთოთ მათემატიკა.

566 ÷ 900 = .628888889

331 ÷ 900 = .367777778

ყველაფერს ვაქცევთ პროცენტებში და ვწერთ სტილის ფურცელში.

ბლოგი.მთავარი (
float: მარცხენა;
სიგანე: 62,8888889%;
}

ბლოგი .გვერდითი პანელი (
float: მარჯვნივ;
სიგანე: 36.7777778%;
}

ესე იგი! ახლა ჩვენ გვაქვს მოქნილი ბადე და შეგვიძლია მისი გამოყენება განლაგებისთვის.

როგორც ხედავთ, ყველაფერი ძალიან მარტივია. მოქნილი ბადის საფუძველი, მოქნილი შრიფტის მსგავსად, იგივე ფორმულაა, რომლის დამახსოვრებაც შეგიძლიათ მარტივად შექმნათ საპასუხო ვებსაიტები.

შენიშვნა!როგორც ხედავთ, ჩვენ დავასრულეთ საკმაოდ გრძელი პროცენტული მნიშვნელობები. ზოგიერთმა შეიძლება გირჩიოთ მათი დამრგვალება, მაგრამ ეს არასოდეს არ გააკეთოთ! გახსოვდეს!

და ეს ყველაფერი ჩემთვის, მადლობა ყურადღებისთვის და წარმატებული ადაპტაციური განლაგებისთვის!

ამ სტატიაში თქვენ იხილავთ სრულ კურსს CSS ბადეებზე. ჩვენ გადავხედავთ, რა არის ეს, რა განსხვავებაა FlexBox-თან და როგორ შეგიძლიათ იმუშაოთ CSS Grid-თან.

CSS ბადეები არის ახალი მიდგომა საპასუხო ვებსაიტების შესაქმნელად მრავალი ბლოკით, რომელიც მდებარეობს საიტის ნებისმიერ ადგილას. გარდა ამისა CSS ბადეასევე არსებობს ტექნოლოგია, რომელიც ძალიან ჰგავს ბადეებს. ჩვენ არ შევეხებით მათ შორის უმცირეს განსხვავებებს, რადგან ამას ცალკე სტატია დასჭირდება, მაგრამ მოკლედ აღვწერთ მთავარ განსხვავებებს.

CSS ბადეშეიძლება ეწოდოს უფრო მაგარი და გაუმჯობესებული ვერსია FlexBox, რადგან FlexBox საშუალებას გაძლევთ იმუშაოთ მხოლოდ ერთ სიბრტყეში: ან შექმენით სვეტები ან შექმენით რიგები.

CSS ბადეები საშუალებას გაძლევთ გააკეთოთ მეტი, რადგან ისინი მუშაობენ ორივე თვითმფრინავზე ერთდროულად. ამრიგად, ვებსაიტების ადაპტირებადი ბლოკების შექმნა ბევრად უფრო ადვილია, ხოლო ობიექტების მოწყობის შესაძლებლობები, როგორც გსურთ, უბრალოდ გაუთავებელია.

გეპატიჟებით უყუროთ სრულ ვიდეოს CSS ბადეების სწავლის შესახებ, რათა მყისიერად გაიგოთ არსი CSS ბადე:


  • გაკვეთილი თემაზე;

გაკვეთილის განმავლობაში შეიქმნა სამი გვერდი, თითოეული გვერდის კოდი შეგიძლიათ დააკოპიროთ ქვემოთ.

პირველი ფაილი

CSS ბადე
Lorem ipsum dolor sit amet, consectetur adipisicing elit. მინიმალური ანიმი, დრო. Vitae consectetur voluptate inventore soluta totam iste dicta neque nesciunt a! ინციდენტი aliquid quae eveniet blanditiis, laudantium assumenda natus doloribus, fuga mollitia debitis dolorem, soluta asperiores accusamus. Qui, აუცილებლობა autem doloremque corporis eligendi dolorum natus, eius aperiam consequatur aliquid, quaerat autem doloremque, tempora cum sed velit. A voluptates laboriosam quibusdam consequatur quas harum unde sint minus, molestiae quo?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit, nostrum animi, aliquid consequuntur iusto esse nulla accusamus commodi perferendis deserunt ipsa quidem, illo quam minima aspernatur vero natus?


მეორე ფაილი

CSS ბადე
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum.
Lorem ipsum.
Lorem ipsum.
Lorem ipsum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repelendus magni atque nostrum deleniti magnam unde ad, expedita perferendis laborum aut, pariatur delectus. Deleniti dolores consequuntur sed iure ratione, laudantium exercitationem perferendis reprehenderit delectus aperiam fugiat rerum earum quidem facere aspernatur ipsam harum. Minus alias sequi inventore aspernatur expedita, odio nemo corporis consectetur labore, voluptas quasi.
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit.


მესამე ფაილი

CSS ბადე
ყუთი 1
ყუთი 2
ყუთი 3
ყუთი 4
ყუთი 5
ყუთი 6


ოპერაციული პრინციპი

ბადეებთან მუშაობა ძალიან მარტივია. აქ მოქმედებების ალგორითმი შემდეგია:

  1. ჩვენ ვქმნით ერთ მთავარ ბლოკს და ვათავსებთ მასში სხვა ბლოკებს ( სექციები);
  2. დაამატეთ ეკრანი: ქსელის თვისება მთავარ ბლოკში;
  3. CSS ქსელის თვისებები ახლა შეიძლება გამოყენებულ იქნას ბლოკის ყველა ძირითად ელემენტზე;
  4. სხვადასხვა თვისებების დამატება. თქვენ შეგიძლიათ იპოვოთ დოკუმენტაცია ყველა შესაძლო საკუთრებაზე;

თითოეული ბლოკის დაყენება შესაძლებელია სიგანეზე, სიმაღლეზე და ადგილმდებარეობის მიხედვით. ბლოკებს, რომლებიც იქმნება ბადეების საფუძველზე, დაუყოვნებლივ აქვთ ადაპტური დიზაინი, რომელიც არეგულირებს ბლოკებს ეკრანის სხვადასხვა რეზოლუციებზე.

ამ გზით შეგიძლიათ დაწეროთ ნაკლები და მიიღოთ მეტი. კიდევ რა შეიძლება იყოს უფრო მაგარი? გაუზიარეთ თქვენი გამოცდილება ბადეების გამოყენებასთან დაკავშირებით თქვენს პროექტებში ამ სტატიის კომენტარებში

დენი მარკოვი

დიზაინი საკმაოდ მარტივია - შედგება ცენტრში გასწორებული კონტეინერისაგან, რომლის შიგნით გვაქვს სათაური, ძირითადი განყოფილება, გვერდითი ზოლი და ქვედა კოლონტიტული. აქ არის ძირითადი „ტესტები“, რომლებიც უნდა ჩავატაროთ CSS და HTML რაც შეიძლება სუფთად შევინარჩუნოთ:

  1. მოათავსეთ განლაგების ოთხი ძირითადი განყოფილება.
  2. გახადეთ გვერდი რეაგირებადი (გვერდითი ზოლი იშლება ძირითადი შინაარსის ქვემოთ მცირე ეკრანებზე).
  3. სათაურის შინაარსის გასწორება - მარცხენა ნავიგაცია, მარჯვენა ღილაკი.

როგორც ხედავთ, შედარებისთვის, ჩვენ ყველაფერი მაქსიმალურად მარტივად შევინარჩუნეთ. დავიწყოთ პირველი ტესტით.

ტესტი 1: გვერდის სექციების განლაგება

Flexbox ხსნარი

ეკრანის დამატება: მოხარეთ კონტეინერზე და დააყენეთ ბავშვის ელემენტების ვერტიკალური მიმართულება. ეს ათავსებს ყველა მონაკვეთს ერთმანეთის ქვეშ.

კონტეინერი (ჩვენება: flex; flex-მიმართულება: სვეტი;)

ახლა ჩვენ უნდა დავრწმუნდეთ, რომ მთავარი განყოფილება და გვერდითი ზოლი ერთმანეთის გვერდით მდებარეობს. ვინაიდან მოქნილი კონტეინერები ჩვეულებრივ ცალმხრივია, საჭიროა დამატებითი ელემენტის დამატება.

ჩვენ შემდეგ დავაყენეთ ამ ელემენტის ჩვენება: flex და flex-direction საპირისპირო მიმართულებით.

მთავარი და გვერდითი ზოლის შეფუთვა (ჩვენება: მოქნილი; მოქნილი მიმართულება: მწკრივი; )

ბოლო ნაბიჯი არის ძირითადი განყოფილებისა და გვერდითი ზოლის ზომების დაყენება. ჩვენ გვინდა, რომ ძირითადი შინაარსი სამჯერ აღემატებოდეს გვერდითი ზოლის სიგანეს, რისი გაკეთებაც ადვილია მოქნილობის ან პროცენტების გამოყენებით.

როგორც ხედავთ, Flexbox-მა ყველაფერი კარგად გააკეთა, მაგრამ ჩვენ ასევე გვჭირდებოდა საკმაოდ ბევრი CSS თვისება და დამატებით HTML ელემენტი. ვნახოთ, როგორ იმუშავებს CSS Grid.

CSS Grid Solution

CSS Grid-ის გამოყენების რამდენიმე ვარიანტი არსებობს, მაგრამ ჩვენ გამოვიყენებთ grid-template-areas სინტაქსს, როგორც ყველაზე შესაფერისი ჩვენი მიზნებისთვის.

პირველ რიგში, ჩვენ განვსაზღვრავთ ოთხ ბადის ზონას, თითო გვერდის თითოეული განყოფილებისთვის:

header ( grid-area: header; ) .main ( grid-area: main; ) .sidebar ( grid-area: sidebar; ) footer ( grid-area: footer; )

ახლა ჩვენ შეგვიძლია დავაყენოთ ჩვენი ბადე და განვსაზღვროთ თითოეული ტერიტორიის მდებარეობა. კოდი შეიძლება ერთი შეხედვით საკმაოდ რთული ჩანდეს, მაგრამ როგორც კი გაეცნობით ქსელის სისტემას, უფრო ადვილი გასაგები ხდება.

კონტეინერი ( ჩვენება: ბადე; /* განვსაზღვროთ ჩვენი ბადის სვეტების ზომა და რაოდენობა. fr ერთეული მუშაობს Flexbox-ის მსგავსად: სვეტები ყოფენ მწკრივში არსებულ სივრცეს მათი მნიშვნელობების მიხედვით. გვექნება ორი სვეტი - პირველი არის სამჯერ აღემატება ბადეში -სვეტები: 3fr 1fr sidebar */ grid-template-areas: "header header" მთავარი sidebar" "footer footer"; /* ბადის უჯრედებს შორის მანძილი იქნება 60 პიქსელი */ grid-gap: 60px; )

ესე იგი! ჩვენი განლაგება ახლა მიჰყვება ზემოხსენებულ სტრუქტურას და ჩვენ დავაყენეთ ის ისე, რომ არ გვქონდეს საქმე ზღვრებთან ან ბალიშებთან.

ტესტი 2. გვერდის რეაგირება

Flexbox ხსნარი

ეს ნაბიჯი მკაცრად არის დაკავშირებული წინასთან. Flexbox-ის გადაწყვეტისთვის მოგვიწევს ფლექსის მიმართულების შეცვლა და ზღვრის კორექტირება.

@media (მაქსიმალური სიგანე: 600 პიქსელი) ( .main-and-sidebar-wrapper ( flex-direction: column; ) .main ( margin-right: 0; margin-bottom: 60px; ) )

ჩვენი გვერდი საკმაოდ მარტივია, ამიტომ მედიის მოთხოვნაში ბევრი სამუშაო არ არის, მაგრამ უფრო რთული განლაგება მოითხოვს ბევრ გადამუშავებას.

CSS Grid Solution

ვინაიდან ჩვენ უკვე განვსაზღვრეთ ბადის სფეროები, ჩვენ უბრალოდ უნდა განვსაზღვროთ მათი თანმიმდევრობა მედია მოთხოვნაში. ჩვენ შეგვიძლია გამოვიყენოთ იგივე დინამიკის დაყენება.

@media (მაქს-სიგანე: 600 პიქსელი) ( .კონტეინერი (/* ბადის არეების გასწორება მობილური განლაგებისთვის */ ბადის შაბლონის არეები: "სათაურის სათაური" "მთავარი მთავარი" "გვერდითი ზოლი" "ძირის ქვედა კოლონტიტული"; ) )

ან ჩვენ შეგვიძლია განვსაზღვროთ მთელი განლაგება ნულიდან, თუ ვფიქრობთ, რომ ეს გამოსავალი უფრო სუფთაა.

@media (მაქს-სიგანე: 600 პიქსელი) ( .კონტეინერი ( /* ბადის გადაქცევა ერთსვეტიან განლაგებად */ ბადის შაბლონი-სვეტები: 1fr; ბადის შაბლონის არეები: "სათაური" "მთავარი" "გვერდითი ზოლი" " ქვედა კოლონტიტული";))

ტესტი 3: სათაურის კომპონენტების გასწორება

Flexbox ხსნარი

ჩვენ უკვე გავაკეთეთ მსგავსი განლაგება Flexbox-თან ერთ-ერთ ძველ სტატიაში -. ტექნიკა საკმაოდ მარტივია:

ჰედერი (ჩვენება: მოქნილობა; დასაბუთება-შიგთავსი: სივრცე-შორის;)

ნავიგაციის სია და ღილაკი ახლა სწორად არის გასწორებული. რჩება მხოლოდ ნივთების შიგნით განთავსება

რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: