Saya memiliki #header
div yang ada 100% width
dan di dalam div saya memiliki daftar unordered. Saya telah menerapkan margin: 0 auto
ke daftar tidak berurutan tetapi tidak akan memusatkannya di dalam header header.
Adakah yang bisa memberi tahu saya alasannya? Saya berpikir bahwa jika saya menentukan lebar div induk, maka daftar yang tidak terurut harus dapat memusatkan dirinya sendiri margin: 0 auto
. Apa yang saya lewatkan?
Ini kode saya:
<style>
* {
margin: 0;
padding: 0;
}
#header {
width: 100%;
background-color: #333;
min-height: 160px;
font-family:Arial, Helvetica, sans-serif;
}
#sitename {
font-size: 50px;
width: 620px;
margin:0 auto;
padding-top: 35px;
color:#999;
}
#header ul {
float: right;
margin: 0 auto;
}
#header ul li {
float: left;
padding-right: 20px;
list-style-type: none;
font-size: 20px;
}
</style>
</head>
<body>
<div id="header">
<h1 id="sitename">Photography Auction Site</h1>
<ul>
<li>List of Photos</li>
<li>Image Gallery</li>
<li>Contact Us</li>
</ul>
</div>
</body>
</html>
Jawaban:
Anda perlu menentukan lebar elemen yang Anda pusatkan, bukan elemen induk.
Sunting : Oke, saya telah melihat testpage sekarang, dan ini adalah bagaimana saya pikir Anda menginginkannya:
sumber
Blok-inline mencakup seluruh baris (dari kiri ke kanan), jadi margin kiri dan / atau kanan tidak akan berfungsi di sini. Yang Anda butuhkan adalah sebuah blok, sebuah blok memiliki batas di sebelah kiri dan kanan sehingga dapat dipengaruhi oleh margin.
Ini cara kerjanya untuk saya:
sumber
Kenapa tidak?
sumber
Aku tidak tahu mengapa jawaban pertama adalah yang terbaik, aku mencoba dan tidak bekerja pada kenyataannya, seperti @ kalys.osmonov kata, Anda dapat memberikan
text-align:center
untukheader
, tetapi Anda harus membuatul
sebagaiinline-block
bukaninline
, dan juga Anda harus pemberitahuan yangtext-align
dapat diwarisi yang tidak baik pada tingkat tertentu, jadi cara yang lebih baik (tidak bekerja di bawah IE 9) menggunakanmargin
dantransform
. Hapusfloat right
danmargin;0 auto
dariul
, seperti di bawah ini:Cara ini dapat memperbaiki masalah yang membuat lebar
ul
pusat dinamis jika Anda tidak peduli IE8 dll.sumber
Kita dapat mengatur lebar untuk tag ul maka akan menyelaraskan pusat.
sumber