2013-05-21 48 views
10

Tôi có html nàyCách căn chỉnh văn bản trung tâm trong các nút tùy chỉnh?

<head> 
<title>HTML5 App</title> 

<link rel="stylesheet" type="text/css" href="css/custom.css"> 
<link rel="stylesheet" type="text/css" href="css/buttons.css"> 

</head> 

<body> 
<!--Estructura --> 


<div id="botones"> 
    <button class="btn" data-am-type="button">Soy un &lt;button&gt;</button> 
    <a class="btn" data-am-type="button">Soy un &lt;a&gt;</a> 
    <div class="btn" data-am-type="button">Soy un &lt;div&gt;</div> 
    <input class="btn" type="button" value="Soy un <input>"> 
</div> 

</body> 

Trong < nút> và < input>, văn bản là trung tâm class của nút nhưng trong < a> và < div>, văn bản được hiển thị trên cùng của nút. Tôi nghĩ rằng nút <> và đầu vào <> kế thừa một số thuộc tính và do đó chúng căn chỉnh văn bản ở giữa nút.

Tôi thấy điều này

pic

và tôi muốn rằng tất cả các nút sắp xếp văn bản ở giữa.

Lớp "btn" là thế này

.btn{ 
display: inline-block; 
padding: 4px 12px; /* Padding por defecto */ 
font-size: 16px; /* Tamaño fuente por defecto */ 
line-height: 20px; /* Tamaño de linea */ 
text-align: center; 
vertical-align: middle; 

font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; 

cursor: pointer; 
height: 80px; 
background-color: #f5f5f5; /* por si no se ve el gradiente, aunque si lo pruebo en Chrome nunca deberia verse este color*/ 
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); 

border: 1px solid #cccccc; 
-webkit-border-radius: 4px; 
} 

Bất kỳ ý tưởng?

+0

Bản sao có thể có của [Căn dọc của văn bản nút] (http://stackoverflow.com/questions/15487408/buttons-text-vertical-align) – Pensierinmusica

Trả lời

13

Để theo chiều dọc trung tâm nội dung của những yếu tố này, bạn chỉ cần thiết lập các line-height văn bản của phần tử tương đương với height của nguyên tố này, và thiết lập box-sizing-border-box (theo thứ tự mà các height của tất cả các yếu tố đều giống nhau:

.btn { 
    /* other, unchanged, CSS */ 
    line-height: 80px; /* <- changed this */ 
    box-sizing: border-box; /* <- added this */ 
} 

JS Fiddle demo.

Rõ ràng điều này không gây ra vấn đề này, các văn bản nên quấn vào một dòng thứ hai.

-1

Thêm display:table-cell; cho lớp .btn.

như

.btn{display:table-cell;} 

này sẽ tạo ra sự liên kết dọc cho Div cũng như a yếu tố có .btn lớp. Hy vọng điều này sẽ hữu ích.

+0

điểm: không được hỗ trợ trong IE7 hoặc thấp hơn – Chalist

+0

IE7 trở xuống? Nút thẻ chính nó không được hỗ trợ cho IE7 hoặc thấp hơn. Có lẽ bạn quên đề cập đến điều đó. Đúng? - @chalist – Nitesh

+1

Bạn cũng bỏ qua một điểm quan trọng của đoạn mã. tức là thẻ tiêu đề. Nó đã đề cập đến HTML5 App. HTML5. Bạn có thể viết thư cho người dùng đã hỏi điều này và nói rằng nó "không được hỗ trợ trong IE7 hoặc thấp hơn". Đúng? - @chalist – Nitesh

0

Hãy loại bỏ các padding:4px 12px; từ lớp btn và thiết lập line-height: theo yêu cầu của bạn thì văn bản nên đến ở trung tâm của hộp.

-1

Remove này: height: 80px;

đệm của bạn: padding: 4px 12px;

Sau khi bạn loại bỏ các chiều cao đệm phải ~ padding: 30px 12px;

Bạn phải thiết lập mức phạt đệm (dựa trên chiều cao văn bản của bạn).

0

Tôi nghĩ rằng tạo chiều cao bằng cách đặt đệm cho phần tử a.

0
border: none; 
outline: 0; 
cursor: pointer; 
text-decoration: none; 
overflow: visible; 
background: none; 
padding:0 16px; 
-webkit-border-radius: 3px; 
-moz-border-radius: 3px; 
border-radius: 3px; 
color: #222 

Hy vọng điều này là hữu ích

-3
vertical-align:center; 

sử dụng đó và nó sẽ làm việc

0

nó phải được, chỉ đơn giản là: line-height: 0.25em;

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