2012-01-09 39 views
15

Tôi đang cố gắng tạo một nút căn giữa đầu vào đơn giản trong một ô bảng.Nút căn giữa theo chiều dọc bằng cách sử dụng css

đánh dấu của tôi là:

<table width="500" border="1"> 
    <tr> 
     <td width="390">XXXXXXXXX</td> 
     <td width="110" rowspan="2" valign="middle"><input type="button" value="submit"></td> 
    </tr> 
    <tr> 
     <td>YYYYYYYY</td> 
    </tr> 
</table> 
<br /><br /> 
<div style="width:500px;"> 

Và có thể được xem tại đây:

http://jsfiddle.net/tP4sD/

Tôi đã làm một phiên bản bảng hiển thị cho bạn cách bố trí mà tôi đang cố gắng để đạt được. Lưu ý rằng văn bản được biểu thị bằng "XXXXX" hoặc "YYYYYY" có độ dài thay đổi.

Trả lời

30

http://jsfiddle.net/8v8gLn4y/

.container { 
 
    background: lightblue; 
 
    display: table; 
 
    width:100%; 
 
} 
 
     
 
input[type=button] {  
 
    display: block; 
 
    width: 50%; 
 
    margin: 0 auto; 
 
} 
 
     
 
.button-wrapper { 
 
    background: darkorange; 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
}
<div class='container'> 
 
    
 
    <div>some line with text</div> 
 
    <div>another line with text</div>  
 
    
 
    <div class='button-wrapper'> 
 
    <input type="button" value="submit" /> 
 
    </div> 
 
    
 
</div>

cập nhật 2016:
flexbox http://jsfiddle.net/9knLeab6/1/

+3

cảm ơn sự trợ giúp, điều đó khiến tôi phát điên. Giải pháp của bạn hoạt động hoàn hảo. :) – Dino

+1

Giải pháp hoàn hảo! –

-1

Nếu bạn thực hiện nút của bạn một yếu tố inline và thêm text-align: center để phụ huynh td bạn nên sử dụng tốt .

Xem thêm: http://jsfiddle.net/c4urself/NucL9/

+0

OP muốn một giải pháp KHÔNG sử dụng bảng – Velojet

Các vấn đề liên quan