要素のリストがあり、inline-block
カーソルを合わせた要素に境界線を追加したいと考えています。box-sizing: border-box
ただし、要素の幅と高さを使用して明示的に定義している場合でも、境界線が要素をオフセットする方法に注意してください。以下の動作を示しました。
* { box-sizing: border-box }
ul { font-size: 0 }
li {
display: inline-block;
width: 100px; height: 40px; margin: 10px;
font-size: 20px; text-align: center;
background-color: #FFF176;
}
li:hover { border: 5px dashed grey }
<ul>
<li>hover</li>
<li>over</li>
<li>me!</li>
</ul>
私が見つけた最善の解決策は、の代わりにoutline
andを使用することですが、元の方法が機能しない理由を知りたいです:/outline-offset
border
UPDATE : BoltClock は本当に素晴らしい説明と提案をしてくれましたが (私が求めていたのはそれだけでした)、インライン要素で抱えていたほとんどすべての問題を解決したflexboxを完全に忘れていたことを言いたかっただけです。最終的な JSFiddle ソリューションのために、これを BoltClock の透明なボーダー トリックと組み合わせました。