2017-08-18 10 views
1

私はこの問題についての質問をたくさん読んで、しかしそれらのどれも完全に問題を解決することができませんでした:それは完全な高さだでセルがクリック可能ではありません。テーブルセル全体をHTML/CSSのリンクにするには?

Illustration here

絵に示されているように、私は<table>タグを使って自分のWebページのために見出しを作って、テーブル全体がオレンジ色に着色されている間、青にクリック可能なコンテンツを色付け。

HTMLコードは次のとおりです。

<table class="visible" id="menu" align="center"> 
    <tr> 
    <td><a href="#"><p>Home</p></a></td> 
    ... 
    </tr> 
</table> 

とCSS COSEさ:残念ながらあなたが見るように、全細胞は、したがって、細胞全体がクリック可能ではない、青ではありません

#menu a { 
    display: block; 
    text-decoration: none; 
} 

。誰も私にこの(JavaScriptを使用しない場合)のための完璧なソリューションを教えてもらえますか?

+0

私はそれを試してみましたが、結果は同じで、高さの低い... –

答えて

2

ではなくdisplay: blockdisplay: flexjustify-content: centerを試してみてください。

a { 
 
    background: lightblue; 
 
    display: flex; 
 
    justify-content: center; 
 
    text-decoration: none; 
 
}
<table align="center" border="1"> 
 
    <tr> 
 
    <td><a href="#"><p>Home</p></a></td> 
 
    </tr> 
 
</table>

+0

と表示:inline-ブロックは何も変わらない.... –

+0

これはどのように解決するのですか? https://jsfiddle.net/1nrbL1mu/ – Huangism

+0

完了!再びありがとう:D –

1

<a/>内側(ブロックレベル)(インラインレベル)<p/>を使用しないでください。

a::after { 
    display:block; 
    content:" "; 
    position:absolute; 
    top:0; 
    left:0; 
    width:100%; 
    height:100%; 
    background:yellow; 
    z-index:-1; 
} 
td 
{ 
    position:relative; 
    z-index:0; 
} 

"A" のスタイルを削除します。

https://jsfiddle.net/1nrbL1mu/9/

また、これはIEのために働く:

a::after 
{ 
    display:block; 
    content:" "; 
    position:absolute; 
    top:0; 
    left:0; 
    width:100%; 
    height:300px; /* max possible */ 
    background:yellow; 
    z-index:-1; 
} 
td 
{ 
    position:relative; 
    z-index:0; 
    overflow:hidden; 
} 

https://jsfiddle.net/1nrbL1mu/12/

+0

これは動作しますあなたは '使用する場合と:after'(1枚のコロン)、それは+どこ'表示IE8で動作します:私は使用しないで – Zac

+0

ますflex' '::' pseudoelementsとのために ':' W3C勧告によるpseudoclassesため。あなたはIE8をサポートしたいのはなぜ は、IE 11 – 18C

+0

でテスト? IE11にアップグレードできませんでしたか?古いブラウザを使用するのは危険です。 – 18C

関連する問題