Table of Contents
Elements and boxes
Box model" >Box model
Home Web Front-end CSS Tutorial Getting started with CSS layout

Getting started with CSS layout

Jun 28, 2017 am 10:22 AM
css

Elements and boxes

The concept often used in HTML is the element, but in CSS, the basic unit of layout is the box, which is always rectangular.

There is no one-to-one correspondence between elements and boxes. One element may generate multiple boxes. Pseudo-elements in CSS rules may also generate boxes. Elements with a display attribute of none will not generate boxes.

In addition to elements, text nodes in HTML may also generate boxes.

Box model

A box includes content, border, Padding, Margin(margin). The following figure shows the intuitive meaning of the box model:

Image illustrating the relationship between content, padding, borders, and margins.

The definition of the size (width and height) of the box is affected by the box-sizing attribute. Box-sizing can choose from three modes: content-box (default), padding-box and border-box.

Normal flow

The normal flow is the page, and most of the boxes are arranged in the normal flow. Boxes in the normal stream must be located in a certain formatting context. There are two formatting contexts in the normal stream: block formatting context (BFC) and inline formatting context (IFC).

In block-level formatting context, boxes are arranged vertically, and in inline formatting context, boxes are arranged horizontally.

The normal flow root container is a block-level formatting context. Different boxes may generate inline formatting context or block-level formatting context internally.

Block level and inline level

Boxes in the normal flow are divided into block level and inline level. No inline level box can be directly put into the block level formatting context. . If an

HTML element generates an inline box, and its context is block level, then an anonymous block level box should be generated for it. The anonymous block level box will generate an inline formatting context internally. . The display attribute of the

element will determine whether the box is inline level or block level:

  • block, table, flex, grid, list-item is block level

  • inline, inline-block, inline-table, inline-flex, inline-grid are inline levels

Formatting context

display may also determine how to display inside the element. The boxes generated by some container elements will generate formatting contexts other than BFC and IFC.

There is a class of boxes called block containers, which can contain block-level boxes. A block container either creates a block-level formatting context, so that it contains only block-level boxes, or an inline-level formatting context, so that it contains only inline-level elements. (That is to say, it is impossible for a block container to contain both block-level boxes and inline-level boxes. Once there are block-level boxes in its sub-box, all inline-level boxes will be automatically wrapped by anonymous boxes).

Block containers in non-block-level formatting contexts always create new block-level formatting contexts: such as display boxes generated for inline-blocks, table-cells, and table-captions. A block container that is also in a block-level formatting context will create a new block-level formatting context only if

overflow is not visible.

Absolute positioning and floating block containers always create a new block-level formatting context.

Elements whose display value is table or inline-table will generate a table, and a special formatting method will be used inside the table to arrange its internal elements.

Elements whose display value is grid or inline-grid will generate grid elements. Similar to the table situation, it also uses a special formatting method internally to mark its internal elements.

Elements with a display value of flex or inline-flex will generate an adaptive container (flex container), and the adaptive container will generate an adaptive formatting context (flex formatting context) inside it.

The above is the detailed content of Getting started with CSS layout. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use bootstrap in vue How to use bootstrap in vue Apr 07, 2025 pm 11:33 PM

Using Bootstrap in Vue.js is divided into five steps: Install Bootstrap. Import Bootstrap in main.js. Use the Bootstrap component directly in the template. Optional: Custom style. Optional: Use plug-ins.

The Roles of HTML, CSS, and JavaScript: Core Responsibilities The Roles of HTML, CSS, and JavaScript: Core Responsibilities Apr 08, 2025 pm 07:05 PM

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

How to write split lines on bootstrap How to write split lines on bootstrap Apr 07, 2025 pm 03:12 PM

There are two ways to create a Bootstrap split line: using the tag, which creates a horizontal split line. Use the CSS border property to create custom style split lines.

Understanding HTML, CSS, and JavaScript: A Beginner's Guide Understanding HTML, CSS, and JavaScript: A Beginner's Guide Apr 12, 2025 am 12:02 AM

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

How to insert pictures on bootstrap How to insert pictures on bootstrap Apr 07, 2025 pm 03:30 PM

There are several ways to insert images in Bootstrap: insert images directly, using the HTML img tag. With the Bootstrap image component, you can provide responsive images and more styles. Set the image size, use the img-fluid class to make the image adaptable. Set the border, using the img-bordered class. Set the rounded corners and use the img-rounded class. Set the shadow, use the shadow class. Resize and position the image, using CSS style. Using the background image, use the background-image CSS property.

How to use bootstrap button How to use bootstrap button Apr 07, 2025 pm 03:09 PM

How to use the Bootstrap button? Introduce Bootstrap CSS to create button elements and add Bootstrap button class to add button text

How to set up the framework for bootstrap How to set up the framework for bootstrap Apr 07, 2025 pm 03:27 PM

To set up the Bootstrap framework, you need to follow these steps: 1. Reference the Bootstrap file via CDN; 2. Download and host the file on your own server; 3. Include the Bootstrap file in HTML; 4. Compile Sass/Less as needed; 5. Import a custom file (optional). Once setup is complete, you can use Bootstrap's grid systems, components, and styles to create responsive websites and applications.

How to resize bootstrap How to resize bootstrap Apr 07, 2025 pm 03:18 PM

To adjust the size of elements in Bootstrap, you can use the dimension class, which includes: adjusting width: .col-, .w-, .mw-adjust height: .h-, .min-h-, .max-h-

See all articles