2016-06-21 5 views
1

私はナビゲーションを使っていくつかのヘッダーを作成していました。具体的には、ナビゲーションリンクを作成しようとしていたので、テキスト自体だけではなく、周囲の領域をクリックできるようにするためのパディングがありました。私の<a>タグは、1つのコードセットで 'display:block'を継承しますが、他のコードセットで継承されないのはなぜですか?

通常あなたがaタグにパディングを適用する必要がある行動のこの種を取得し、display: blockプロパティを使用するために:私は、周囲のクリッカブルを達成することができる午前私はhereを持っている私のcodepenで

li a { 
    display: block; 
    padding: 10px 15px; 
} 

display: blockは適用されません。しかし、this hereの類似したコードをインターネットで見つけた場合、パディングエリアをクリックできるようにするにはdisplay: blockが必要です。

なぜ最初のコードリンクにdisplay: blockプロパティを挿入する必要はありませんか?それは李からその財産を継承していますか?もしそうなら、2番目のコードセットを継承しないのはなぜですか?

+0

ここで比較するコードを表示する必要があります。サードパーティのサイトを使用すると、明日はコードが変更または消滅し、誰にも役立つことができなくなります。 – Rob

答えて

0

に背景色を追加し、ULスタイルでこれを削除してください。インライン要素は、ブロックのようにパディングを処理できます。

例:

div{ 
 
    background:red; 
 
    padding: 10px; 
 
    margin-bottom:20px; /* just for visual purpose */ 
 
} 
 

 
span{ 
 
    background:lightblue; 
 
    padding: 10px; 
 
}
<div>Block</div> 
 
<span>Inline</span>

あなたが設けられた二つのCodepen例との違いは、第1に、uloverflow: hiddenスタイルを強制することによって、リンクのパディングを隠しているということです。

ulからoverflowスタイルがaタグ(リンク)は目に見えて、彼らが持っているパディングを表示することができますことを取り外します。

+1

downvoteを説明してください、ありがとう! –

+0

わかりました。ご説明ありがとうございます – FrontEnder

0

このメソッドの本当の魔法は、要素に設定された高さを与えずに、オーバーフローを隠しに設定すると内部要素の高さを取ります。

overflow:hidden; 

あなたは必ずしも所望の効果を達成するためにadisplay:blockを追加するを持っていないこの

li a 
{ 
background-color:#333; 
} 
+1

これは、OPの質問のための良い答えではありません。なぜ彼は彼の質問に彼のコード/答えを変更する必要があります(私は思う)についていくつかの説明を追加する必要があります。 –

+0

説明が追加されました –

関連する問題