簡體   English   中英

如何對齊文本和輸入?

[英]How to align text and input?

我有使用HTML的代碼:

<div id = "right">
<br /><br /><br />

<br />Parameter 1 : 10 <input type="range" min="10" max="40" step="0.01" value="10" class="slider" id="myRange" onchange="updateValue_Parameter_1(this.value);"> 40
<input type="text" id="textInput" value="">
<script>
function updateValue_Parameter_1(val) {document.getElementById('textInput').value="Parameter 1 = "+val;}
</script>

<br />Parameter 2 : -15 <input type="range" min="-15" step="0.01" max="-9" value="-15" class="slider" id="myRange1" onchange="updateValue_Parameter_2(this.value);"> -9
<input type="text" id="textInput1" value="">
<script>
function updateValue_Parameter_2(val) {document.getElementById('textInput1').value="Parameter 2 = "+val;}
</script>

<br />  Parameter 3 : -15 <input type="range" min="-15" step="0.01" max="-9" value="-15" class="slider" id="myRange2" onchange="updateValue_Parameter_3(this.value);"> -9
<input type="text" id="textInput2" value="">
<script>
function updateValue_Parameter_3(val) {document.getElementById('textInput2').value="Parameter 3 = "+val;}
</script>

<br />Parameter 4 : 7 <input type="range" min="7" max="9" value="7" step="0.01" class="slider" id="myRange3" onchange="updateValue_Parameter_4(this.value);"> 9
<input type="text" id="textInput3" value="">
<script>
function updateValue_Parameter_4(val) {document.getElementById('textInput3').value="Parameter 4 = "+val;}
</script>

<br />Parameter 5 : -8 <input type="range" min="-8" max="-5" step="0.01" value="-8" class="slider" id="myRange4" onchange="updateValue_Parameter_5(this.value);"> -5
<input type="text" id="textInput4" value="">
<script>
function updateValue_Parameter_5(val) {document.getElementById('textInput4').value="Parameter 5 = "+val;}
</script>

<br />Parameter 6 : 0 <input type="range" min="0" max="1" step="0.01" value="0" class="slider" id="myRange5" onchange="updateValue_Parameter_6(this.value);"> 1
<input type="text" id="textInput5" value="">
<script>
function updateValue_Parameter_6(val) {document.getElementById('textInput5').value="Parameter 6 = "+val;}
</script>

<br />Parameter 7 : 100 <input type="range" min="100" max="6000" step="0.01" value="100" class="slider" id="myRange6" onchange="updateValue_Parameter_7(this.value);"> 6000
<input type="text" id="textInput6" value="">
<script>
function updateValue_Parameter_7(val) {document.getElementById('textInput6').value="Parameter 7 = "+val;}
</script>

<br />Parameter 8 : 0 <input type="range" min="0" max="1" step="0.01" value="0" class="slider" id="myRange7" onchange="updateValue_Parameter_8(this.value);"> 1
<input type="text" id="textInput7" value="">
<script>
function updateValue_Parameter_8(val) {document.getElementById('textInput7').value="Parameter 8 = "+val;}
</script>

<br />Parameter 9 : 5 <input type="range" min="5" max="20" step="0.01" value="5" class="slider" id="myRange8" onchange="updateValue_Parameter_9(this.value);"> 20
<input type="text" id="textInput8" value="">
<script>
function updateValue_Parameter_9(val) {document.getElementById('textInput8').value="Parameter 9 = "+val;}
</script>

</div>  

這產生以下結果:

在此輸入圖像描述

我想將類型范圍的輸入對齊到左邊,類型文本的輸入也對齊左邊但是我不知道怎么做? 我嘗試使用margin-left,但它會產生錯誤的結果......

最簡單的解決方案是為每個“列”設置固定寬度。 這樣,他們會很好地對齊。

<label class='width1'>Parameter 1 : 10 </label>
<input class="width2 slider" type="range" min="10" max="40" step="0.01" value="10"  id="myRange" onchange="updateValue_Parameter_1(this.value);">
<span class='width3'>40</span>
<input class='width4' type="text" id="textInput" value="" >

和你的CSS(例如)

.width1 {
 width: 100px;
}
.width2 {
width: 150px;
}
.width3 {
width: 20px;
}
.width4 {
width: 80px;
}

這樣他們就會齊心協力。

否則,您可以使用display:table來模擬表格。

或者將所有值放在HTML表中。

或者你可以使用帶有justify-content:space-between; Flexbox justify-content:space-between; 但這可能有點棘手。

我的解決方案: JSFiddle演示

我使用Flexboxflex-basis為每個元素賦予自己的寬度,使它們整齊排列。 現在,每段代碼都包含在一個元素(文本labels )中,以便對它們進行樣式設置。

我還清理並縮進了HTML,以便一切都更容易閱讀。

讓我注意,使用Flex可以使響應更快,您可以根據需要更改容器的固定width ,以及在父/容器的整個寬度flex-basis控制分布空間的flex-basis

 body, html { height: 100%; width: 100%; margin: 0; } .container { width: 600px; margin-top: 30px; } .line { display: flex; justify-content: space-between; } .line label:nth-of-type(1) { flex-basis: 25%; } .line input.slider { flex-basis: 25%; } .line label:nth-of-type(2) { flex-basis: 10%; } .line input[type=text] { flex-basis: 25%; } 
 <div class="container"> <div class="line"> <label for="myRange">Parameter 1 : 10</label> <input type="range" min="10" max="40" step="0.01" value="10" class="slider" id="myRange" onchange="updateValue_Parameter_1(this.value);"> <label>40</label> <input type="text" id="textInput" value=""> <script> function updateValue_Parameter_1(val) { document.getElementById('textInput').value = "Parameter 1 = " + val; } </script> </div> <div class="line"> <label for="myRange1">Parameter 2 : -15 </label> <input type="range" min="-15" step="0.01" max="-9" value="-15" class="slider" id="myRange1" onchange="updateValue_Parameter_2(this.value);"> <label>-9</label> <input type="text" id="textInput1" value=""> <script> function updateValue_Parameter_2(val) { document.getElementById('textInput1').value = "Parameter 2 = " + val; } </script> </div> <div class="line"> <label for="myRange2">Parameter 3 : -15 </label> <input type="range" min="-15" step="0.01" max="-9" value="-15" class="slider" id="myRange2" onchange="updateValue_Parameter_3(this.value);"> <label>-9</label> <input type="text" id="textInput2" value=""> <script> function updateValue_Parameter_3(val) { document.getElementById('textInput2').value = "Parameter 3 = " + val; } </script> </div> <div class="line"> <label for="myRange3">Parameter 4 : 7 </label> <input type="range" min="7" max="9" value="7" step="0.01" class="slider" id="myRange3" onchange="updateValue_Parameter_4(this.value);"> <label>9</label> <input type="text" id="textInput3" value=""> <script> function updateValue_Parameter_4(val) { document.getElementById('textInput3').value = "Parameter 4 = " + val; } </script> </div> <div class="line"> <label for="myRange4">Parameter 5 : -8 </label> <input type="range" min="-8" max="-5" step="0.01" value="-8" class="slider" id="myRange4" onchange="updateValue_Parameter_5(this.value);"> <label>-5</label> <input type="text" id="textInput4" value=""> <script> function updateValue_Parameter_5(val) { document.getElementById('textInput4').value = "Parameter 5 = " + val; } </script> </div> <div class="line"> <label for="myRange5">Parameter 6 : 0 </label> <input type="range" min="0" max="1" step="0.01" value="0" class="slider" id="myRange5" onchange="updateValue_Parameter_6(this.value);"> <label>1</label> <input type="text" id="textInput5" value=""> <script> function updateValue_Parameter_6(val) { document.getElementById('textInput5').value = "Parameter 6 = " + val; } </script> </div> <div class="line"> <label for="myRange6">Parameter 7 : 100</label> <input type="range" min="100" max="6000" step="0.01" value="100" class="slider" id="myRange6" onchange="updateValue_Parameter_7(this.value);"> <label>6000</label> <input type="text" id="textInput6" value=""> <script> function updateValue_Parameter_7(val) { document.getElementById('textInput6').value = "Parameter 7 = " + val; } </script> </div> <div class="line"> <label for="myRange7">Parameter 8 : 0</label> <input type="range" min="0" max="1" step="0.01" value="0" class="slider" id="myRange7" onchange="updateValue_Parameter_8(this.value);"> <label>1</label> <input type="text" id="textInput7" value=""> <script> function updateValue_Parameter_8(val) { document.getElementById('textInput7').value = "Parameter 8 = " + val; } </script> </div> <div class="line"> <label for="myRange8">Parameter 9 : 5</label> <input type="range" min="5" max="20" step="0.01" value="5" class="slider" id="myRange8" onchange="updateValue_Parameter_9(this.value);"> <label>20</label> <input type="text" id="textInput8" value=""> <script> function updateValue_Parameter_9(val) { document.getElementById('textInput8').value = "Parameter 9 = " + val; } </script> </div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM