我有一個表單,我試圖用CSS語義和格式進行佈局。由於它是動態生成的(從ASP.NET MVC開始),某些元素可能會呈現爲文本而不是輸入標記,因爲它們對於該屏幕可能是隻讀的。我試圖給標籤標籤添加一個寬度來整理表單並對齊值/值框,但似乎我只能在浮動它們時才能做到這一點(是否正確?)。當我在標籤標籤之後呈現值時,這可以正常工作,但是如果值爲空白,則左側浮動標籤似乎與先前標籤相疊加,即使兩者都包含在p標籤中(這些應該是塊級別,是的?)。如果有的話,我做錯了什麼?CSS - 使用標籤標籤格式化表單
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /><title>
Edit
</title>
<!-- Next Style Section Is Just To Set Up Classes, it will be moved to .CSS file -->
<style type="text/css">
div.FieldGroup {background-color: Blue; }
p.Field { display: block; }
span.NoteHeader { font-style: italic;}
label { float: left; width: 150px;}
</style>
</head>
<body>
<div id="main">
<h2>Edit</h2>
<form action="" method="post">
<div id="MainSection" class="FieldGroup">
<fieldset>
<legend>Person Identification</legend>
<p class="Field">
<label>Name:</label>
Name
</p>
<p class="Field">
<label for="Colour">ChildStatus:</label>
<select id="Colour" name="Colour">
<option value="10">Red</option>
<option value="20">Yellow</option>
<option selected="selected" value="30">Orange</option>
</select>
</p>
<p class="Field">
<label for="Age">Age:</label>
<input id="Age" name="Age" type="text" value="" />
</p>
<p class="Field">
<label>Birthplace:</label>
</p>
<p class="Field">
<label for="Reference">Reference:</label>
<input id="Reference" name="Reference" type="text" value="" />
</p>
</fieldset>
</div>
</form>
</div>
</body>
</html>
乾杯
MH
(PS - 我不能在只讀文本框添加到包含這些空白,因爲他們想,如果他們不能改變數值純文本)
任何原因你包裝你的標籤/輸入段落元素?這可能工作正常,但語義上不應該是divs?也許它對我的想法太過分了,但我能想到的一件事是你想要在p.Field風格中明確地設置很多無聊的風格值,因爲瀏覽器都爲p標籤添加了不同的東西(邊距和填充特別是),很少有任何一個瀏覽器是相同的。至少在一個div中,你知道大多數瀏覽器應該把它當作一個只有所有樣式默認爲0或空白的容器。 – 2009-08-21 16:59:31
我已經改變了嘗試它,但它沒有對問題做任何改變。 – 2009-08-21 17:12:10