2012-02-10 58 views
18

Tôi có một vài bảng định kiểu. Đầu tiên là một biểu định kiểu với một số kiểu mà tôi muốn sử dụng làm mặc định. Tùy thuộc vào nhiều yếu tố, mã được sử dụng để tạo trang có thể bao gồm một số tệp định kiểu có các giá trị sẽ ghi đè các giá trị mặc định.Thứ tự của định nghĩa biểu định kiểu css có quan trọng không?

Nếu tôi sử dụng điều này, tôi có thể tin tưởng rằng các giá trị trong biểu định kiểu mặc định sẽ bị ghi đè bởi các giá trị từ biểu định kiểu khác không? Tôi đang sử dụng bộ chọn lớp và sẽ ghi đè các giá trị khi tên phù hợp.

<link href="defaults.css" rel="stylesheet" type="text/css"/> 
<link href="valuestooverridedefaults.css" rel="stylesheet" type="text/css"/> 

Điều này cần phải hoạt động trên tất cả các trình duyệt, bao gồm cả thiết bị di động. Tôi muốn tránh phải sử dụng "! Quan trọng", nếu có thể.

Cảm ơn!

+2

Chà, các bạn. Đó là rất nhiều câu trả lời giống hệt nhau. lol Dù sao, @ Jon, bạn có thể thấy bài viết này hữu ích. Nó giải thích mọi thứ rất rõ ràng. http://hungred.com/useful-information/css-priority-order-tips-tricks/ –

Trả lời

16

Có một số cascade được xác định trong đó các kiểu được sắp xếp và áp dụng. Khi khai báo có cùng trọng số (trọng số), nguồn gốcspecifity thì tuyên bố sau đó sẽ thắng.Hầu hết các câu trả lời đều bao gồm tầm quan trọngspecifity tại đây nhưng không phải nguồn gốc.

Dưới đây là một số trang trình bày rất hay về CSS Cascades.

+2

FYI. Liên kết tới trang trình bày đã chết. – Seagull

+0

có thể là: http://css.maxdesign.com.au/#downloadable – Jellema

+1

Đó là tài nguyên học tập tốt nhất cho CSS mà tôi đã xem. Đã làm cho tôi. – raarts

2

Vâng, đó là cách bảng định kiểu hoạt động. Người cuối cùng thắng.

Chỉ cần đảm bảo độ đặc hiệu của bảng định kiểu mặc định không lớn hơn ghi đè của bạn. Và có, tránh! Quan trọng nếu bạn có thể. Nó chỉ là ngớ ngẩn.

2

Nếu tôi sử dụng điều này, tôi có thể tin tưởng rằng các giá trị trong biểu định kiểu mặc định sẽ bị ghi đè bởi các giá trị từ biểu định kiểu khác không? Tôi đang sử dụng bộ chọn lớp và sẽ ghi đè các giá trị khi tên phù hợp.

Câu trả lời là "có", như bạn đã lưu ý, khi các bộ chọn trên trang tính thứ hai giống hệt đầu tiên.

Việc sử dụng !important sẽ là ngoại lệ, vì vậy hãy tránh nó, như bạn cũng đã lưu ý.

3

Nếu bộ chọn giống hệt nhau, lần tải trước được ưu tiên, giống như khi bạn khai báo cùng một lớp hai lần trong cùng một biểu định kiểu.

3

Nếu bạn đã xác định phong cách cho một selector trong hơn một file css, phong cách từ file CSS được nạp cuối cùng sẽ được đưa

2

vâng - đầu mối là vào tên 'tầng' stylesheets. Vì vậy, một phong cách nội tuyến sẽ ghi đè lên một phong cách được xác định trong đầu và một phong cách trong đầu sẽ ghi đè lên một phong cách trong một bảng định kiểu. Tải trang tính kiểu cuối cùng có thể ghi đè các kiểu trong bản tải trước. Nếu bạn sử dụng một cái gì đó như firebug hoặc thanh tra trong chrome nó sẽ cho bạn thấy nơi mà mỗi phong cách đã đến từ hoặc những gì nó đã overidden.

2

Câu trả lời đơn giản là có. Bất kỳ kiểu nào được tuyên bố lại tiếp tục xuống các trang sẽ ghi đè lên các lớp được khai báo trước đó trong tải trang.

Để làm điều này, việc khai báo thứ hai của lớp phải nằm trong kế thừa.

Các lớp như .content {} và .body .content {} có thể hoạt động khác khi kế thừa kiểu.

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