2012-06-26 42 views
9

Nếu có thể, làm thế nào tôi có thể ghi đè thuộc tính min-height của một lớp cho một div cụ thể?Ghi đè thuộc tính chiều cao tối thiểu

Ví dụ:

.someclass { 
 
    min-height: 200px; 
 
}
<div class="someclass"> 
 
    -- content -- 
 
</div>

Tôi đã cố gắng sử dụng một cái gì đó giống như style="min-height:100px!important;" trên div nhưng điều đó dường như không làm việc.

Trả lời

14

thói quen rất xấu là sử dụng các khai báo !important trong biểu định kiểu chuẩn của bạn. Tránh nó bằng mọi giá, bởi vì nó phá vỡ bản chất tầng của các bảng định kiểu.

Sử dụng more specific selector để ghi đè kiểu trước đó.

Để đặt lại kiểu về mặc định, hãy sử dụng auto|inherit|0 tùy thuộc vào thuộc tính. Đối với min-height0. CSS3 giới thiệu giá trị đặc biệt inital nên được sử dụng tốt nhất - nhưng tiếc là nó có giới hạn IE support.

Trong trường hợp của bạn min-height:100px; trong bộ chọn có độ đặc hiệu cao hơn (id hoặc kiểu nội tuyến - tốt nhất là không phải là kiểu sau) nên thực hiện thủ thuật.

let div = document.querySelector("#morespecific"); 
 

 
div.innerHTML = "This div has its min-height set to: "+window.getComputedStyle(div).minHeight;
.someclass{ 
 
    min-height:200px; 
 
    border:1px solid red; 
 
} 
 
#morespecific{ 
 
    min-height:100px; 
 
    border-color:blue; 
 
}
<div id="morespecific" class="someclass"> 
 
-- content -- 
 
</div>

+0

cần phải ghi đè chiều cao tối thiểu: 200px. chiều cao tối thiểu: tự động cũng không hoạt động – nik

+0

cảm ơn giải pháp của bạn, tôi đã bỏ qua px sau 100px. điều đó xảy ra đôi khi con số đang đến động – nik

+0

bạn được chào đón;) – Christoph

1

Một !important cờ cần đi bên trong dấu chấm phẩy, như thế này:

.someclass {min-height: 200px !important;} 

Bên cạnh đó, bạn nên không thực sự được sử dụng !important cờ nếu bạn có thể giúp nó. Quy tắc ghi đè cần phải cụ thể hơn quy tắc ban đầu.

Tôi nghĩ bạn cần đọc lên trên specificity and inheritance.

+0

sử dụng quan trọng để loại bỏ giải pháp này và tôi cần ghi đè thuộc tính của chiều cao tối thiểu: 200px. Nó đã được sử dụng 200px, do đó sẽ không giúp – nik

+0

... Vì vậy, thay đổi 200 đến 100? –

+0

.sececlass với các thuộc tính khác không được đặt cho div này. Thats lý do tại sao cần phải ghi đè lên nó :) – nik

0

phong cách Inline ghi đè lên phong cách CSS, vì vậy

<div class="someclass" style="height: 50px;">...</div> 

đè quy tắc trong stylesheet của bạn. Tuy nhiên, nó thường không phải là một giải pháp tốt để khắc phục vấn đề này. Giải pháp ưu tiên sẽ là sử dụng bộ chọn có độ đặc hiệu cao hơn trong css bên ngoài của bạn.

+0

Đã thử điều đó, nhưng nó cũng không hoạt động – nik

+0

giống nhau, tôi wa bỏ px khỏi thuộc tính để giải pháp chính xác là

-- content --
. Cảm ơn vì đã trả lời. – nik

3

tôi không thể tìm thấy bất kỳ câu trả lời tốt hơn so với chỉ sử dụng từ 0 đến ghi đè thứ phút, và sử dụng một cái gì đó giống như 1000% để ghi đè lên những thứ tối đa.

+0

Đúng! đây là cách tiêu chuẩn để thiết lập lại các thuộc tính CSS "min- *". –

+0

Đây là câu trả lời logic. Cảm ơn. –

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