これら 2 つの例の動作が異なる理由がわかりません。HTML と CSS の目的は、単に div を水平方向に整列させ、最後の div (右側) が残りのスペース (コンテナーの残りの幅) を占めるようにすることです。
正しいアイテムに特定の ID を使用する:
<style type="text/css">
#left {
float: left;
padding: 0 1cm;
background-color: #ff0000;
}
#right {
width: 100%;
background-color: #00FF00;
}
</style>
<div>
<div id="left">item 1</div>
<div id="left">item 2</div>
<div id="right">last</div>
</div>
:last-child を使用:
<style type="text/css">
#left {
float: left;
padding: 0 1cm;
background-color: #ff0000;
}
#left:last-child {
width: 100%;
background-color: #00FF00;
}
</style>
<div>
<div id="left">item 1</div>
<div id="left">item 2</div>
<div id="left">last</div>
</div>