2013-09-22 25 views
5

Cách tạo chiều cao bằng chiều cao bằng css.Cách tạo chiều cao bằng chiều cao bằng css

Tôi có HTML như thế:

<div style="width:900px;height:200px;"> 
<a style="display:block; float:left; width:35%; background:green"></a> 
</div> 

Bây giờ, tôi muốn làm cho chiều cao của a yếu tố chiều rộng bằng nhau (35%). Làm thế nào tôi có thể làm điều đó? Cảm ơn sự giúp đỡ của bạn.

+0

Bạn có nghĩa là bạn muốn thay đổi kích thước tỷ lệ tương ứng? – Seazoux

+1

Anh ta muốn chiều cao bằng với chiều rộng, khi chiều rộng là phần trăm. – Bart

+0

Vâng, tôi có thể đặt chiều cao: tự động ... Nhưng tôi sẽ kiểm tra somethings ..: P – Seazoux

Trả lời

2

sử dụng window.getComputedStyle để có được những tính chiều rộng, sau đó tính toán để có được tỷ lệ phần trăm equvialent mà sẽ làm cho nó có cùng kích thước với chiều rộng.

HTML

<div class="someDiv" style="width:900px;height:200px;"> 
    <a class="someAnchor" style="display:block; float:left; width:35%; background:green"></a> 
</div> 

JS

var anchor = document.querySelector(".someDiv .someAnchor"); 
var astyle = window.getComputedStyle(anchor); 
anchor.style.height = astyle.width; //this will make it static though 

//to make it a percentage like width so it will expand and contract with resize of parent element 

var pstyle = window.getComputedStyle(anchor.parentNode); 
var pheight = parseInt(pstyle.height); 
var awidth = parseInt(astyle.width); 
anchor.style.height = ((awidth/pheight)*100)+"%"; 

Lưu ý rằng phần tử neo sẽ lớn hơn so với chiều cao div khôn ngoan, để giữ nó bên cha mẹ bạn sẽ phải mở rộng nó xuống.

JSFiddle Demo

+1

Anh ấy chỉ muốn CSS ... – Seazoux

+1

anh ấy có javascript được gắn thẻ –

+0

Và tiêu đề: 'with css', tôi sẽ đợi đến ans ..: P Bạn đã thực hiện nó với js và tôi bằng CSS ...: P – Seazoux

9

Tôi cũng có mà:

HTML:

<div class='box'> 
    <div class='content'>Aspect ratio of 1:1</div> 
</div> 

CSS:

.box{ 
    background:#000; 
    position: relative; 
    width: 50%;  /* desired width */ 
} 
.box:before{ 
    content: ""; 
    display: block; 
    padding-top: 100%; /* initial ratio of 1:1*/ 
} 

JSFiddle:http://jsfiddle.net/wGszc/

http://www.mademyday.de/css-height-equals-width-with-pure-css.html

Bạn có thể thích ứng với nhu cầu của bạn ...

Và ... Một tìm kiếm chút trong google không bị tổn thương: https://www.google.com/search?q=make+height+iquals+to+width

+0

Nó không phải là giải pháp. –

+0

Bạn có thể điều chỉnh nó! – Seazoux

+0

điều này không làm bất cứ điều gì ở tất cả những gì anh ta muốn, http://jsfiddle.net/wGszc/1/, phần tử bên trong không cùng chiều rộng và chiều cao, bạn vừa đơn giản là phần tử cha có cùng chiều rộng chiều cao. –