2013-08-31 26 views
18

Tôi đang làm việc trên một dự án kế thừa đã đặt lại CSS với *{ margin:0; padding:0 } áp dụng cho mọi thứ. Bây giờ, mã mới của tôi không cần nó vì nó dựa trên Normalize.css. Điều này đã không được nhiều của một vấn đề nhưng ở một số nơi tôi cần phải sử dụng cả hai phong cách.Làm thế nào để làm đệm: tự động làm việc trong CSS?

Tôi làm cách nào để hủy đặt lại CSS của mình? Tôi đã có thể làm *{margin:auto} hoạt động tốt. Điều này cũng không đúng về padding. Có một cách tương đương để thiết lập lại padding. Làm thế nào để bạn đi về giải quyết này?

+0

đầu tiên của tất cả các padding: auto; là không có gì .. và thứ hai trên bất cứ điều gì bạn thay đổi, bạn có thể cho! quan trọng để sử dụng điều này trong mọi trường hợp – nsthethunderbolt

+0

có thể trùng lặp của [HTML/CSS: Đặt lại danh sách đệm thành mặc định] (http://stackoverflow.com/questions/5561101/html-css-reset-list-padding-to-default) – Scottie

+0

@nsthethunderbolt Tôi không thể sử dụng! quan trọng bởi vì tôi đang làm việc trên một thiết kế Responsive và do đó sử dụng quan trọng có thể làm cho mọi thứ thực sự khó khăn với các truy vấn media –

Trả lời

19

auto không phải là một giá trị hợp lệ cho padding bất động sản, điều duy nhất bạn có thể làm là đưa ra padding: 0; từ việc kê khai *, nếu không chỉ đơn giản là gán padding đến khối tài sản tương ứng.

Nếu bạn loại bỏ padding: 0; từ * {} hơn trình duyệt sẽ áp dụng kiểu mặc định các yếu tố của bạn mà sẽ cung cấp cho bạn offsets vị trình duyệt chéo bất ngờ bởi vài điểm ảnh, vì vậy nó là tốt hơn để gán padding: 0; sử dụng * và hơn nếu bạn muốn ghi đè lên các đệm , chỉ cần sử dụng một quy tắc khác như

.container p { 
    padding: 5px; 
} 
+0

Tôi không muốn loại bỏ 'padding: 0' bởi vì điều này sẽ có vấn đề với mã di sản được thực hiện trước đó. Tôi nghĩ rằng các tùy chọn duy nhất là để thêm đệm khi cần thiết vì nó không thể được unreset như margin. –

+0

@VaibhavKanwal có, như tôi đã đề xuất –

2

Bạn chỉ cần phạm vi bộ chọn * của mình cho các khu vực cụ thể cần đặt lại. .legacy * { } vv

+0

nói chung, chúng tôi đặt 'lề: 0; padding: 0' trên 'body' để các phần tử lồng nhau đơn giản thừa hưởng điều này, ở trên sẽ chỉ hoạt động nếu bạn không đặt' margin: 0; padding: 0' to body –

1

Các giải pháp hỗ trợ đơn giản nhất là sử dụng một trong hai lề

.element { 
    display: block; 
    margin: 0px auto; 
} 

Hoặc sử dụng một container thứ hai xung quanh phần tử có biên độ này được áp dụng. Điều này phần nào sẽ có tác dụng của padding: 0px auto nếu nó đã tồn tại.

CSS

.element_wrapper { 
    display: block; 
    margin: 0px auto; 
} 
.element { 
    background: blue; 
} 

HTML

<div class="element_wrapper"> 
    <div class="element"> 
    Hello world 
    </div> 
</div> 
Các vấn đề liên quan