2013-07-25 41 views
31

Đây là câu hỏi CSS cơ bản, tôi có nút radio có nhãn văn bản nhỏ sau đó. Tôi muốn văn bản xuất hiện ở giữa theo chiều dọc nhưng văn bản luôn được căn chỉnh với nút của nút radio trong trường hợp của tôi.Căn chỉnh văn bản theo chiều dọc bên cạnh nút radio

<p><input type="radio" id="opt1" name="opt1" value="1" />A label</p> 

Đây là một Jsfiddle:

http://jsfiddle.net/UnA6j/

Bất kỳ lời đề nghị?

Xin cảm ơn,

Alan.

+0

http://jsfiddle.net/UnA6j/5/ – Prasanth

+3

Bạn nên sử dụng một '

Trả lời

30

Sử dụng nó bên trong một label. Sử dụng vertical-align để đặt nó vào giá trị khác nhau - bottom, baseline, middle, vv

http://jsfiddle.net/UnA6j/5/

+0

cảm ơn ... Tôi vẫn không thể làm cho nó phù hợp xem mã cập nhật của tôi với nhãn .. http://jsfiddle.net/UnA6j/5/ –

+0

Ok Tôi đã làm việc đó, tôi đã sử dụng mã của bạn và điều chỉnh radio ipnut để có một lề trên tiêu cực mà thay đổi nó lên để sự liên kết là chính xác. Là lợi nhuận tiêu cực chấp nhận thực hành, nó cảm thấy sai! http://jsfiddle.net/UnA6j/5/ –

+0

Nice .. Tôi không nghĩ rằng lợi nhuận tiêu cực là một vấn đề .. nếu nó đang làm việc trên tất cả các trình duyệt, nó là tốt để đi .. là tiêu chuẩn – Prasanth

7

Dùng để này

input[type="radio"]{ 
    vertical-align:top; 
    } 
p{ 
    font-size:10px;line-height: 18px; 
} 

Demo

2

Bạn có thể thử một cái gì đó tương tự;

<p><input type="radio" id="oddsPref" name="oddsPref" value="decimal" /><span>Decimal</span></p> 

và cung cấp cho khoảng cách lề như trên;

span{ 
    margin-top: 4px; 
    position:absolute; 
} 

đây là fiddle http://jsfiddle.net/UnA6j/11/

+0

Tôi cần vị trí trình duyệt chéo bằng cách sử dụng người thân thay vì kích thước phông chữ tuyệt đối, mang lại kích thước văn bản khác nhau trong các trình duyệt khác nhau. Bài đăng của bạn đã cho tôi ý tưởng sử dụng các giá trị margin-top âm tính trong ems để bù trừ, đã hoạt động! – grw

+0

Cảm ơn @grw. Hãy xem xét upvoting câu trả lời của tôi nếu nó hoạt động cho bạn :) –

+0

Tôi đã làm, và cảm ơn :-) – grw

11

Tôi nghĩ rằng đây là những gì bạn có thể được yêu cầu cho

http://jsbin.com/ixowuw/2/

CSS

label{ 
    font-size:18px; 
    vertical-align: middle; 
} 

input[type="radio"]{ 
    vertical-align: middle; 
} 

HTML

<span> 
    <input type="radio" id="oddsPref" name="oddsPref" value="decimal" /> 
    <label>Decimal</label> 
</span> 
+0

@ Rahul-Thakus cảm ơn cho mã của bạn mang lại cho tôi cùng một vấn đề .. văn bản phù hợp với đường cơ sở .... –

+0

đảm bảo rằng nó không bị ghi đè bởi một số thuộc tính cha khác, btw bạn đang sử dụng trình duyệt nào? –

+0

@ Rahul-Thakus Tôi đang sử dụng Chrome, nhưng trong IE9 có vẻ ổn. –

3

Bạn cần phải sắp xếp các văn bản bên trái của nút radio sử dụng float: left

input[type="radio"]{ 
float:left; 
} 

Bạn có thể sử dụng nhãn quá cho sản lượng phản ứng nhanh hơn.

3

HTML:

<label><input type="radio" id="opt1" name="opt1" value="1"> A label</label> 

CSS:

label input[type="radio"] { vertical-align: text-bottom; } 
0

Bạn cũng có thể thử một cái gì đó như thế này:

input[type="radio"] { 
 
    margin-top: -1px; 
 
    vertical-align: middle; 
 
}
<label class="child"><input id = "warm" type="radio" name="weathertype" value="warm" checked> Warm<br></label> 
 
<label class="child1"><input id = "cold" type="radio" name="weathertype" value="cold" checked> Cold<br></label>

2

đơn giản và ngắn giải pháp thêm dưới đây phong cách:

style="vertical-align: text-bottom;" 
2

Điều này sẽ cho chết trên sự liên kết

input[type="radio"] { 
    margin-top: 1px; 
    vertical-align: top; 
} 
0

input.radio {vertical-align:middle; margin-top:8px; margin-bottom:12px;}

chỉ cần điều chỉnh trên và dưới khi cần thiết cho sự liên kết hoàn hảo của nút radio hoặc hộp kiểm

<input type="radio" class="radio">