1
這工作:形成頂級品牌的作品,但不與側標籤
* {
box-sizing: border-box;
}
.parent {
display: grid;
/* grid-template-areas:
"contact comments"
"... button";*/
grid-template-rows: 12em;
grid-template-columns: 12em;
grid-gap: .8em;
background: yellow; // for debugging
padding: 0;
}
.lp {
// label properties
padding: 0.4em; //1.1em
background-color: cyan;
}
.ip {
// input properties
padding: 0.4em; //1.1em
margin-bottom: 1.5em;
background-color: lightyellow;
}
// maps areas to markup elements
.lnam { grid-area: 1/1; } // label Name area -> label elem
.inam { grid-area: 2/1; } // input Name area -> input elem
.leml { grid-area: 3/1; } // ditto for Email
.ieml { grid-area: 4/1; }
.ltel { grid-area: 5/1; } // and Telephone
.itel { grid-area: 6/1; }
<form class="parent">
<div>
<label class="lp lnam" for="name">Name</label>
<input class="ip inam" type="text" id="name" required>
<label class="lp leml" for="email">Email</label>
<input class="ip ieml" type="text" id="email" required>
<label class="lp ltel" for="tph">Phone</label>
<input class="ip itel" type="text" id="tph" required>
</div>
</form>
,但不能得到側label
s到工作。 input
元素放置在標籤下方,但它應該跟在同一行上的label
之後。 下面的代碼與上面使用相同標記的代碼幾乎相同。 區別:grid-area
規格和grid-template-columns
(兩列用於側label
S)
* {
box-sizing: border-box;
}
.parent {
display: grid;
/* grid-template-areas:
"contact comments"
"... button";*/
grid-template-rows: 4em;
grid-template-columns: 150px 200px;
grid-gap: .8em;
background: yellow;
padding: 0;
}
.lp {
padding: 0.4em; //1.1em
//border: 1px solid blue;
background-color: cyan;
}
.ip {
padding: 0.4em; //1.1em
//border: 1px solid blue;
margin-bottom: 1.5em;
background-color: lightgreen;
}
.lnam {
grid-area: 1/1 /2/2;
} // area -> element
.inam {
grid-area: 1/2 /2/3;
}
/* .leml { grid-area: 3/11; }
.ieml { grid-area: 4/1; }
.ltel { grid-area: 5/1; }
.itel { grid-area: 6/1; } */
<form class="parent">
<div>
<label class="lp lnam" for="name">Name</label>
<input class="ip inam" type="text" id="name" required>
<!--<label class="lp leml" for="email">Email</label>
<input class="ip ieml" type="text" id="email" required>
<label class="lp ltel" for="tph">Phone</label>
<input class="ip itel" type="text" id="tph" required>-->
</div>
</form>
我用Firefox和鉻,得到了相同的結果。 我在做什麼錯?
是的,開口形式標籤的正下方在div-元件是麻煩製造者。正如你所建議的改變選擇器解決了問題。刪除div標籤或將form標籤從form標籤移動到div標籤也可解決側標籤問題。刪除網格區域設置可將解決方案几乎全部解決爲無。太好了! 在輸入元素上方設置頂標還有一個很好的簡短解決方案嗎?想知道如何? – resander
@resander如果我正確理解你最後的問題,你只需要一列,所以你可以將'grid-template-columns'更改爲'grid-template-columns:1fr'。 –
絕對正確。我是新來的CSS網格和CSS Flexbox。我昨天閱讀了關於自動流動的文檔,但是沒有看到它的相關性。現在我意識到製作常規表格非常方便。 – resander