水平ナビゲーションメニューを作成しようとしています。メニュー項目(li)の要素は円の形をしています。これはデモです。質問は、リンクのテキストが上に表示されていることです。中央に表示するにはどうすればよいですか。それは可能でしょうか、私に知らせてください、どんな提案も歓迎します。ありがとう
5 に答える
また、テキストが2行を超える場合は、これを使用してテキストを中央に保つことができます。
#menu ul li a
{
display:table-cell;
vertical-align:middle;
height:85px;
width:35px;
}
そしてあなたの2番目の質問への答え:
#menu ul li:hover
{
background:red;
}
私はあなたのフィドルで遊んだ。私がしたことは、「li」display:inline-blockを作成し、li:hoverを#menu li:hoverに変更したことです。
#menu ul li
{
float:left;
display:inline-block;
padding:40px 30px;
background-color:slategray;
margin:0 20px 0 0;
height:17px;
-webkit-border-radius:50px;
}
#menu li:hover
{
-webkit-box-shadow:0 0 50px 12px #69CDF5;
background:#cb2326;
}
ここでフィドルを確認してください:http://jsfiddle.net/Az8cG/15/
マージンとパディングを使用できるのはブロックアイテムのみです。アンカータグはインライン要素です。それらをCSSのブロック要素にする必要があります。
#menu ul li a
{
text-decoration:none;
display:block;
padding:30px 0 0 0;
}
diodeusへの回答として投稿された2番目の質問に答えるには:
純粋なcss3ホバー効果を使用したい場合は、:hoverセレクターを使用してこれと同様のことを行う必要があります。
#menu ul li a:hover {
background-color: #000000;
}
素晴らしい効果を得るには、ここに表示されているCSS3遷移プロパティを使用します。
垂直方向の整列をいじるのではなく、線の高さを円の高さ/幅に等しく設定します。
背景が赤で表示されないという問題は、で宣言されたセレクターの特異性が、li:hover
の元のbgカラー宣言を克服するのに十分な高さではなかったこと#menu ul li
です。
両方の修正については、 http: //jsfiddle.net/Az8cG/11/を参照してください。