Jadual Kandungan
 水平居中 
  内联元素(inline or inline-*)居中?
  块级元素(block level)居中?
  如果有很多块级元素呢?
 垂直居中
  垂直居中在CSS中有点棘手
  它是一行的吗?
  它是多行的?
  块级元素(block level)垂直居中?
 同时水平和垂直居中
  元素有固定的宽度和高度
  元素的宽度高度未知
Rumah hujung hadapan web html tutorial CSS垂直水平完全居中手册_html/css_WEB-ITnose

CSS垂直水平完全居中手册_html/css_WEB-ITnose

Jun 24, 2016 am 11:17 AM

居中一直是CSS中被抱怨的典型。为什么实现起来这么辛苦?所以有人被嘲笑。我觉得问题不是没有办法做到,只是视情况而定,有很多不同方式,但是很难弄清楚应该用何种方式。

  因此我写了这篇文章,希望能把他变得容易点。

 水平居中 

  内联元素(inline or inline-*)居中?

  你可以让他相对父级块级元素居中对齐

1

2

3

.center-children {

   text-align : center ;

}

  块级元素(block level)居中?

  你可以通过设置margin-left和margin-right为auto让它居中(同时还要设置width,否则它就会承满整个容器,无法看出居中效果),如。

1

2

3

.center-me {

   margin : 0 auto ;

}

  如果有很多块级元素呢?

  如果你有很匀块级元素需要水平居中成一行,你最好使用一个不同的display类型。这是一个使用inline-block和flex的例子。

  在线示例: http://jsfiddle.net/ourjs/0b6b7wt8/

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

  

     I'm an element that is block-like with my siblings and we're centered in a row.

   div >

  

     I'm an element that is block-like with my siblings and we're centered in a row. I have more content in me than my siblings do.

   div >

  

     I'm an element that is block-like with my siblings and we're centered in a row.

   div >

main >

 

  

     I'm an element that is block-like with my siblings and we're centered in a row.

   div >

  

     I'm an element that is block-like with my siblings and we're centered in a row. I have more content in me than my siblings do.

   div >

  

     I'm an element that is block-like with my siblings and we're centered in a row.

   div >

main >

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

body {

   background : #f06d06 ;

   font-size : 80% ;

}

main {

   background : white ;

   margin : 20px 0 ;

   padding : 10px ;

}

main div {

   background : black ;

   color : white ;

   padding : 15px ;

   max-width : 125px ;

   margin : 5px ;

}

.inline-block- center {

   text-align : center ;

}

.inline-block- center div {

   display : inline- block ;

   text-align : left ;

}

.flex- center {

   display : flex;

   justify- content : center ;

}

 垂直居中

  垂直居中在CSS中有点棘手

  内联元素(inline or inline-*)居中,像文本和链接那样的?

  它是一行的吗?

  有时侯元素可以表现像垂直居中,只是因为它们有相等的上下padding

1

2

3

4

.link {

   padding-top : 30px ;

   padding-bottom : 30px ;

}

  如果padding因为某些原因不能用,而且文本不会换行的情况下,你可以使用line-height,让其与height相等去对齐文本。

1

2

3

4

5

.center-text-trick {

   height : 100px ;

   line-height : 100px ;

   white-space : nowrap ;

}

  它是多行的?

  上下等padding的方式也可以让多行居中,但是如果这方法没用,你可以让这些文字的容器按table cell模式显示,然后设置文字的vertical-align属性对齐,就像talbe那样

  在线演示: http://jsfiddle.net/ourjs/0fn2u4rc/

1

2

3

4

5

6

7

8

9

10

  

    

       I'm vertically centered multiple lines of text in a real table cell.

     td >

   tr >

table >

   I'm vertically centered multiple lines of text in a CSS-created table layout. p >

div >

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

body {

   background : #f06d06 ;

   font-size : 80% ;

}

table {

   background : white ;

   width : 240px ;

   border-collapse : separate ;

   margin : 20px ;

   height : 250px ;

}

table td {

   background : black ;

   color : white ;

   padding : 20px ;

   border : 10px solid white ;

   /* default is vertical-align: middle; */

}

.center-table {

   display : table;

   height : 250px ;

   background : white ;

   width : 240px ;

   margin : 20px ;

}

.center-table p {

   display : table-cell ;

   margin : 0 ;

   background : black ;

   color : white ;

   padding : 20px ;

   border : 10px solid white ;

   vertical-align : middle ;

}

  块级元素(block level)垂直居中?

  你知道元素的高度吗?

  出于很多方面的原因,不知道网页布局的高度是相当普遍的。

  但是如果你的布局有一个固定高度,你就可以这样垂直居中:

1

2

3

4

5

6

7

8

9

.parent {

   position : relative ;

}

.child {

   position : absolute ;

   top : 50% ;

   height : 100px ;

   margin-top : -50px ; /* 如果没有使用: border-box; 的盒子模型则需要设置这个 */

}

  元素的高度是未知的

  尽管未知,但你仍有可能向上推移50%的宽度

  在线演示: http://jsfiddle.net/ourjs/9sLf7p56/

1

2

3

4

5

6

7

8

.parent {

   position : relative ;

}

.child {

   position : absolute ;

   top : 50% ;

   transform: translateY( -50% );

}

  你可以使用flexbox吗?

  这并不奇怪,使用flexbox会容易非常多

1

2

3

4

5

 

  

      I'm a block-level element with an unknown height, centered vertically within my parent.

   div > 

main >

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

body {

   background : #f06d06 ;

   font-size : 80% ;

}

main {

   background : white ;

   height : 300px ;

   width : 200px ;

   padding : 20px ;

   margin : 20px ;

   display : flex;

   flex- direction : column;

   justify- content : center ;

   resize: vertical;

   overflow : auto ;

}

main div {

   background : black ;

   color : white ;

   padding : 20px ;

   resize: vertical;

   overflow : auto ;

}

 同时水平和垂直居中

  元素有固定的宽度和高度

  如果元素的宽度和高度是固定的,你需要先绝对居中,然后上移和左移50%的宽度即可,这种方案有极好的跨浏览器支持。

1

2

3

4

5

6

7

8

9

10

11

12

13

.parent {

   position : relative ;

}

 

.child {

   width : 300px ;

   height : 100px ;

   padding : 20px ;

   position : absolute ;

   top : 50% ;

   left : 50% ;

   margin : -70px 0 0 -170px ;

}

  元素的宽度高度未知

  如果你不知道高度和宽度(可变的),你可以使用transofrm属性在两个方向都平移负50%

1

2

3

4

5

6

7

8

9

10

.parent {

   position : relative ;

}

 

.child {

   position : absolute ;

   top : 50% ;

   left : 50% ;

   transform: translate( -50% , -50% );

}

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1662
14
Tutorial PHP
1261
29
Tutorial C#
1234
24
Adakah HTML mudah belajar untuk pemula? Adakah HTML mudah belajar untuk pemula? Apr 07, 2025 am 12:11 AM

HTML sesuai untuk pemula kerana mudah dan mudah dipelajari dan dapat melihat hasilnya dengan cepat. 1) Keluk pembelajaran HTML adalah lancar dan mudah dimulakan. 2) Hanya menguasai tag asas untuk mula membuat laman web. 3) Fleksibiliti yang tinggi dan boleh digunakan dalam kombinasi dengan CSS dan JavaScript. 4) Sumber pembelajaran yang kaya dan alat moden menyokong proses pembelajaran.

Memahami HTML, CSS, dan JavaScript: Panduan Pemula Memahami HTML, CSS, dan JavaScript: Panduan Pemula Apr 12, 2025 am 12:02 AM

WebDevelopmentReliesOnhtml, CSS, andjavascript: 1) HtmlStructuresContent, 2) CSSStylesit, dan3) JavaScriptaddsInteractivity, Formingthebasisofmodernwebexperiences.

Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Apr 08, 2025 pm 07:05 PM

HTML mentakrifkan struktur web, CSS bertanggungjawab untuk gaya dan susun atur, dan JavaScript memberikan interaksi dinamik. Ketiga melaksanakan tugas mereka dalam pembangunan web dan bersama -sama membina laman web yang berwarna -warni.

HTML, CSS, dan JavaScript: Alat penting untuk pemaju web HTML, CSS, dan JavaScript: Alat penting untuk pemaju web Apr 09, 2025 am 12:12 AM

HTML, CSS dan JavaScript adalah tiga tiang pembangunan web. 1. HTML mentakrifkan struktur laman web dan menggunakan tag seperti, dan sebagainya. 2. CSS mengawal gaya laman web, menggunakan pemilih dan atribut seperti warna, saiz font, dan lain-lain.

HTML: Struktur, CSS: Gaya, JavaScript: Tingkah Laku HTML: Struktur, CSS: Gaya, JavaScript: Tingkah Laku Apr 18, 2025 am 12:09 AM

Peranan HTML, CSS dan JavaScript dalam pembangunan web adalah: 1. HTML mentakrifkan struktur laman web, 2. CSS mengawal gaya laman web, dan 3. JavaScript menambah tingkah laku dinamik. Bersama -sama, mereka membina kerangka, estetika dan interaktiviti laman web moden.

Masa Depan HTML: Evolusi dan Trend dalam Reka Bentuk Web Masa Depan HTML: Evolusi dan Trend dalam Reka Bentuk Web Apr 17, 2025 am 12:12 AM

Masa depan HTML penuh dengan kemungkinan yang tidak terhingga. 1) Ciri -ciri dan piawaian baru akan merangkumi lebih banyak tag semantik dan populariti komponen web. 2) Trend reka bentuk web akan terus berkembang ke arah reka bentuk yang responsif dan boleh diakses. 3) Pengoptimuman prestasi akan meningkatkan pengalaman pengguna melalui pemuatan imej yang responsif dan teknologi pemuatan malas.

HTML vs CSS vs JavaScript: Gambaran Keseluruhan Perbandingan HTML vs CSS vs JavaScript: Gambaran Keseluruhan Perbandingan Apr 16, 2025 am 12:04 AM

Peranan HTML, CSS dan JavaScript dalam pembangunan web adalah: HTML bertanggungjawab untuk struktur kandungan, CSS bertanggungjawab untuk gaya, dan JavaScript bertanggungjawab untuk tingkah laku dinamik. 1. HTML mentakrifkan struktur laman web dan kandungan melalui tag untuk memastikan semantik. 2. CSS mengawal gaya laman web melalui pemilih dan atribut untuk menjadikannya cantik dan mudah dibaca. 3. JavaScript mengawal tingkah laku laman web melalui skrip untuk mencapai fungsi dinamik dan interaktif.

Masa Depan HTML, CSS, dan JavaScript: Trend Pembangunan Web Masa Depan HTML, CSS, dan JavaScript: Trend Pembangunan Web Apr 19, 2025 am 12:02 AM

Trend masa depan HTML adalah semantik dan komponen web, trend masa depan CSS adalah CSS-in-JS dan CSShoudini, dan trend masa depan JavaScript adalah webassembly dan tanpa pelayan. 1. Semantik HTML meningkatkan kebolehcapaian dan kesan SEO, dan komponen web meningkatkan kecekapan pembangunan, tetapi perhatian harus dibayar kepada keserasian penyemak imbas. 2. CSS-in-JS meningkatkan fleksibiliti pengurusan gaya tetapi boleh meningkatkan saiz fail. Csshoudini membolehkan operasi langsung rendering CSS. 3.Webassembly mengoptimumkan prestasi aplikasi penyemak imbas tetapi mempunyai keluk pembelajaran yang curam, dan tanpa pelayan memudahkan pembangunan tetapi memerlukan pengoptimuman masalah permulaan sejuk.

See all articles