Saya perlu membuat kode berikut merenggang dengan ketinggian yang telah ditentukan
<style>
.title{
background: url(bg.gif) no-repeat bottom right;
height: 25px;
}
</style>
<span class="title">This is title</span>
Tetapi karena span adalah elemen inline, properti "height" tidak akan berfungsi.
Saya mencoba menggunakan div sebagai gantinya, tetapi itu akan meluas hingga lebar elemen atas. Dan lebarnya harus fleksibel.
Adakah yang bisa menyarankan solusi yang baik untuk ini?
Terima kasih sebelumnya.
Jawaban:
Berikan
display:inline-block
di CSS - yang akan membiarkannya melakukan apa yang Anda inginkan.Dalam hal kompatibilitas: IE6 / 7 akan bekerja dengan ini, seperti yang disarankan oleh mode quirks:
sumber
inline-block
.Note: No versions of Internet Explorer (including IE8) support the property values "inline-table", "run-in", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-row", or "table-row-group".
IE 6/7 accepts the value only on elements with a natural display: inline.
span
saat itu. Terima kasih atas infonya, henasraf.Menggunakan
.title{ display: inline-block; height: 25px; }
Trik satu-satunya adalah dukungan browser. Periksa apakah daftar browser yang didukung menangani blokir sebaris di sini .
sumber
ini untuk membuat display: blok-sebaris berfungsi di semua browser:
Cukup unik, di IE (6/7), jika Anda memicu hasLayout dengan "zoom: 1" dan kemudian menyetel tampilan ke sebaris, ini akan berperilaku sebagai blok sebaris.
.inline-block { display: inline-block; zoom: 1; *display: inline; }
sumber
Dengan asumsi Anda tidak ingin menjadikannya elemen blok, maka Anda dapat mencoba:
.title { display: inline-block; /* which allows you to set the height/width; but this isn't cross-browser, particularly as regards IE < 7 */ line-height: 2em; /* or */ padding-top: 1em; padding-bottom: 1em; }
Tetapi solusi termudah adalah dengan hanya memperlakukan
.title
sebagai elemen tingkat blok, dan menggunakan tag judul yang sesuai<h1>
melalui<h6>
.sumber
menjangkau
{ display: table-cell; height: (your-height + px); vertical-align: middle; }
Agar span berfungsi seperti sel tabel (atau elemen lainnya, dalam hal ini), tinggi harus ditentukan. Saya telah memberikan ketinggian bentang, dan mereka bekerja dengan baik - tetapi Anda harus menambahkan tinggi agar mereka melakukan apa yang Anda inginkan.
sumber
Pilihan lain tentu saja adalah menggunakan Javascript (Jquery di sini):
$('.box1,.box2').each(function(){ $(this).height($(this).parent().height()); })
sumber
Mengapa Anda membutuhkan span dalam kasus ini? Jika Anda ingin menata ketinggian, bisakah Anda menggunakan div? Anda dapat mencoba div dengan
display: inline
, meskipun itu mungkin memiliki masalah yang sama karena Anda pada dasarnya akan melakukan hal yang sama sebagai span.sumber