1

ここに画像の説明を入力

ライブ フィドル:

http://jsfiddle.net/jMAzr/1/

Apple.com での実例: http://www.apple.com/

<html>
<head>
<style>
body {
 background:#000000;   
}
li {
    list-style:none;
    display: list-item;
}
ul.menu li {
    float:left;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
    text-decoration: none;
    font-weight: 400;
}
ul.menu li a {
    text-decoration:none;
}
.header-tab-title {
    display: block;
    position: relative;
    height: 46px;
    line-height: 46px;
    cursor: pointer;
    font-size: 16px;
    color: #fff;
    text-align: center;
}
.search-field {
    width: 70px;
    border-radius:10px;
    transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    -webkit-transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    -moz-transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    -o-transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    animation-direction:reverse;
    -webkit-animation-direction:reverse; /* Safari and Chrome */
    border: 1px solid #353535;
    height:18px;
    padding: 0px 23px 4px;
    color:#FFF;
}
.search-field:focus {
    color:#000;
    width: 140px;
    margin-left:-70px; 
    height:20px;
}
</style>
</head>
<body>
<ul class="menu">
<li><span class="header-tab-title" style="width:124px;">Produtos</span></li>
<li><span class="header-tab-title" style="width:151px;">Sites Prontos</span></li>
<li><span class="header-tab-title"style="width:192px;" >Anuncie no Google</span></li>
<li><span class="header-tab-title" style="width:230px;">Facebook Para Negócios</span></li>
<li><span class="header-tab-title" style="width:152px;">Hospedagem</span></li>
<li><span class="header-tab-title" style="width:110px;"><input class="search-field" type="search"></span></li>
</ul>
</body>
</html>
4

2 に答える 2

3

探している動作には、他の「セル」の幅が大きくなるにつれて変更するテーブル レイアウトが必要です。このレイアウトで単純化されたフィドルを作成しました。

http://jsfiddle.net/Hp3JU/

例を単純化するためにいくつかの要素を削除しましたが、ソリューションの本質は、外側の を持ち、display: table次にdisplay:table-row各「セル」が であることdisplay:table-cellです。「テーブル」に固定幅を与え、:hover疑似クラスの負のマージンを削除して、最後のセルが隣のセルと重ならないようにします。また、ハードコーディングされた固定幅を削除して、必要に応じてセルを折りたたんでスペースを空ける必要があります。

<div class="table">
    <ul class="menu">
      <li>Produtos</li>
      <li>Sites Prontos</li>
      <li>Anuncie no Google</li>
      <li>Facebook Para Negócios</li>
      <li>Hospedagem</li>
      <li><input class="search-field" type="search" /></li>
    </ul>
</div>

CSS(該当部分のみ):

.table {
    display: table;
    width: 100%;
}
ul.menu {
    display: table-row;
}
ul.menu > li {
    display: table-cell;
}
.search-field {
    width: 70px;
    border-radius:10px;
    transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    -webkit-transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    -moz-transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    -o-transition: width 0.5s ease-in-out,margin-left 0.5s ease-in-out;
    animation-direction:reverse;
    -webkit-animation-direction:reverse; /* Safari and Chrome */
    border: 1px solid #353535;
    height:18px;
    padding: 0px 23px 4px;
    color:#FFF;
}
.search-field:focus {
    color:#000;
    width: 140px;
    height:20px;
}
于 2013-10-29T03:18:13.237 に答える