Начална » кодиране на стоките » Преместване на елементи в оформлението на мрежата на CSS [Ръководство]

    Преместване на елементи в оформлението на мрежата на CSS [Ръководство]

    Използвайки CSS модул за оформление на мрежата в уеб дизайна става все по-осъществимо с повече браузъри го подкрепят. При създаването на оформления, запълващи клетките на мрежата, може да се появи момент, когато искате да постигнете по-сложни неща.

    Например, може да искате да леко се движат някои от елементите на мрежата са заседнали в техните мрежови зони. Вие също може да искате преместете ги от контейнера на мрежата (препълване), или един над друг (припокриване), или просто… до някакво празно пространство наоколо.

    Така че в този пост ще ви покажа как можете елементи на преместване, подреждане, преливане, припокриване и размер когато използвате CSS Grid Layout Module.

    Създайте CSS мрежа

    Първо, нека създадем проста CSS мрежа с един ред и три колони.

    В HTML, ние създаваме куп divs, където контейнерът на мрежата съдържа трите решетки.

     

    В CSS, контейнерът на мрежата има дисплей: решетка; Имот и елементите на мрежата имам решетка площ който идентифицира имената на областите на елементите на мрежата.

    Ние също добавете мрежата-шаблон-области Имот към контейнера на мрежата, в който са използвани имената на мрежовите области задайте областите на решетката на клетките на мрежата, които те представляват.

    Всички колони поемат размера на една фракция (FR) на ширината на контейнера, като се гарантира задържането на решетките.

     .решетъчен контейнер дисплей: решетка; grid-template-области: "ляво дясно център"; решетка-шаблон-колони: повторение (3, 1fr); grid-template-rows: 80px; разстояние между решетките: 5px; ширина: 360px; фонов цвят: магента;  .grid-left grid-area: left;  .grid-center grid-area: center;  .grid-right grid-area: right;  .grid-container div цвят на фона: светлозелен;  

    Преливни елементи от мрежата

    Можете да направите елемент от мрежата препълнете контейнера му ако е необходимо за оформление. За да постигнете ефект на преливане, просто трябва използвайте различен размер на колона:

     .решетъчен контейнер дисплей: решетка; grid-template-области: "ляво дясно център"; решетка-шаблон-колони: повторение (3, 150px); разстояние между решетките: 5px;  

    Най- сума от размера на колоната и пропастта е по-голям от ширина на контейнера, което води до препълване на решетките на контейнера.

    Припокриват елементи от мрежата

    А позиция на мрежата може да се припокрива (напълно или частично покритие) друг елемент от мрежата в следните случаи:

    1. Той е настроен да обхваща (и над) клетката (клетките) на друг елемент от мрежата.
    2. Неговият размер е увеличен, което води до припокриване с близкия елемент от мрежата.
    3. Премества се върху друга позиция в мрежата.

    Ще обсъдим втория и третия случай по-късно, в “Оразмеряване” и “Движещ се” секции.

    Първо, нека видим първия случай, когато елемент от мрежата обхваща друг.

    Елементът от мрежата в центъра има надвиши над лявата, така че само два елемента са видими на екрана.

     .решетъчен център grid-area: център; решетка-колона: 1/3;  

    Най- решетка-колона и решетка ред Имоти присвоите линии на мрежата между които една колона или ред трябва да се вмести.

    На диаграмата по-долу можете да видите как решетка-колона: 1/3 Правилото за CSS работи: централната колона обхваща между линиите 1 и 3 на решетката. В резултат на това централната колона припокрива лявата.

    Преместете елементите от мрежата

    Като се движа, искам да кажа преместване на елементите леко наоколо. Ако напълно искате да преместите елемент в друга клетка / област на мрежата, препоръчвам ви да актуализирате кода за създаване на мрежата.

    Преместването около елементите на мрежата е просто. Просто използвай марж, на трансформиране, или позиция: относителна; Имоти. Вижте по-долу как елементите се преместват с тези свойства.

    Централната и дясната решетка могат да бъдат преместени (както е показано по-горе) по следните начини:

    1. Използване марж

    Отрицателните граници увеличават размерите на решетките, а положителните полета ги отрязват. Като използвате комбинация от двете, можете да преместите елементите на мрежата наоколо.

     .решетъчен център grid-area: център; margin-left: -10px; margin-right: 10px; margin-top: -10px; margin-bottom: 10px;  .grid-right grid-area: right; margin-left: 10px; margin-right: -10px; margin-top: -10px; margin-bottom: 10px;  
    2. Използване трансформиране

    Най- превеждам () CSS функция премества елемент по осите x и y. Използването му заедно с трансформиране property ви позволява да промените позицията на елемента от мрежата.

     .решетъчен център grid-area: център; transform: translate (-10px, -10px);  .grid-right grid-area: right; transform: translate (10px, -10px);  
    3. Използване позиция

    Използвайки позиция: относителна; правило с посоченото връх, дъно, наляво, и прав Свойствата могат да се използват и за придвижване по решетки.

     .решетъчен център grid-area: център; позиция: относителна; дъно: 10px; вдясно: 10px;  .grid-right grid-area: right; позиция: относителна; дъно: 10px; наляво: 10px;  

    Поръчайте елементи от мрежата

    Елементите на решетката се визуализират на екрана в реда, в който се появяват в изходния HTML код.

    В предишния раздел, когато централният елемент е преместен наляво, той е поставен в горната част на левия елемент от браузъра. Това се случи, защото в HTML,

    идва след
    , следователно централният елемент е извършени след (и над) лявата.

    Но можем променете елементите на поръчката използвайки Z-индекс или поръчка CSS свойства.

    Използвайки z-индекс: 1; правило, лявата позиция на мрежата има по-висок контекст на подреждане.

    . отляво grid-area: left; z-индекс: 1;  

    Както в модула CSS Grid Layout, променяйки реда на елементите в HTML не засяга оформлението на мрежата, можете също да сложите

    преди
    в HTML. Направете го само ако актуализираният HTML код не вреди на достъпността.

    Размери на мрежата

    Ако използвате редове или колони с автоматичен размер за елемент от мрежата (използвайки Автоматичен, FR, гр единици), той ще се свие, за да направи място за съседния си елемент, който е нараснал в размер само ако споменатия елемент не е оразмерен трансформиране или отрицателен марж.

    Не забравяйте, че в нашата примерна мрежа всичките три колони поемат една фракция (FR) на решетъчния контейнер. Обърнете внимание как изглеждат трите елемента, след като размерът на лявата се променя по два различни начина.

    1. Размер с широчина и височина

    Тук променяме размера на левия елемент използвайки широчина и височина Имоти. В резултат на това той остава вътре в контейнера на мрежата.

     .отляво grid-area: left; ширина: 200px; височина: 90px;  
    2. Размери с трансформиране

    Тук променяме размера на левия елемент използвайки трансформиране Имот. В резултат на това той препълва контейнера и отворът на решетката също изчезва.

     .отляво grid-area: left; transform: scalex (1.8);  
    © Savtec
    Полезна информация и съвети за уеб разработка. Програмиране, уеб дизайн, CSS, HTML, JAVASCRIPT. Конфигурирайте и инсталирайте отново WINDOWS. Създаване на сайтове и приложения от нулата.