Home > Web Front-end > CSS Tutorial > What is the true purpose of \'display: table-column\' in CSS?

What is the true purpose of \'display: table-column\' in CSS?

Patricia Arquette
Release: 2024-11-05 05:20:02
Original
297 people have browsed it

What is the true purpose of

Unraveling the Enigma of CSS "display: table-column"

The exploration of HTML and CSS properties often leads to intriguing questions. One such query arises when implementing a CSS table-based layout using the enigmatic "display: table-column" declaration. Despite its allure, this property has a rather specific purpose, which can lead to puzzling results if not understood correctly.

Background: The CSS Table Model

The CSS table model is an intricate system that borrows heavily from the HTML table model. In this model, a table is composed of rows and columns, with cells occupying each intersection of a row and column. While cells are direct descendants of rows, they have no direct relationship with columns.

Purpose of "display: table-column"

Contrary to popular belief, the "display: table-column" property does not provide a way to create columnar layouts. Its sole purpose is to define attributes that apply specifically to cells within the table rows. In other words, it allows us to specify characteristics like background color or font size for specific cells based on their position within the row.

However, it is important to note that the table structure remains the same as in traditional HTML. Columns do not contain content directly; instead, they exist solely as logical constructs that influence the layout of cells within rows.

Illustrative Example

Consider the following HTML and CSS code:

<code class="html"><section>
  <div id="colLeft">
    <div id="row1">
      <div id="cell1">AAA</div>
    </div>
    <div id="row2">
      <div id="cell2">BBB</div>
    </div>
  </div>
  <div id="colRight">
    <div id="row3">
      <div id="cell3">CCC</div>
    </div>
  </div>
</section></code>
Copy after login
Copy after login
<code class="css">section {
  display: table;
  height: 100%;
  background-color: grey;
}

#colLeft,
#colRight {
  display: table-column;
  height: 100%;
}

#row1,
#row2,
#row3 {
  display: table-row;
  height: 100%;
}

#cell1,
#cell2,
#cell3 {
  display: table-cell;
  height: 100%;
}</code>
Copy after login

In this example, the "display: table-column" declaration is applied to the "colLeft" and "colRight" elements. These elements do not contain any content; their sole purpose is to define the layout of cells within their respective rows.

Despite the presence of these column definitions, you may notice that nothing appears in the browser. This is because, as mentioned earlier, columns do not contain content directly. Content must be placed within table cells, which are children of table rows.

To remedy this, we need to modify our HTML structure to place content within table cells:

<code class="html"><section>
  <div id="colLeft">
    <div id="row1">
      <div id="cell1">AAA</div>
    </div>
    <div id="row2">
      <div id="cell2">BBB</div>
    </div>
  </div>
  <div id="colRight">
    <div id="row3">
      <div id="cell3">CCC</div>
    </div>
  </div>
</section></code>
Copy after login
Copy after login

With this modification, the content appears as expected, demonstrating the proper use of "display: table-column."

The above is the detailed content of What is the true purpose of \'display: table-column\' in CSS?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template