Dấu hoa thị (*) làm gì trong bộ chọn CSS?


98

Tôi đã tìm thấy mã CSS này và tôi đã chạy nó để xem nó hoạt động gì và nó phác thảo MỌI phần tử trên trang,

Ai đó có thể giải thích những gì Dấu hoa thị * làm trong CSS không?

<style>
* { outline: 2px dotted red }
* * { outline: 2px dotted green }
* * * { outline: 2px dotted orange }
* * * * { outline: 2px dotted blue }
* * * * * { outline: 1px solid red }
* * * * * * { outline: 1px solid green }
* * * * * * * { outline: 1px solid orange }
* * * * * * * * { outline: 1px solid blue }
</style>

@jasondavis - Câu hỏi này dành riêng cho mã của bạn hoặc tôi chỉ hỏi một câu hỏi mới. Trang của bạn có hiển thị nhiều đường viền với các màu khác nhau không? Cách duy nhất tôi có thể tạo ra các màu khác nhau như vậy là nếu tôi chỉ định thẻ sau đó là * IE div * { outline ...}* { outline ... }. Nếu tôi sử dụng * { outline ... }* * { outline ... }chỉ mô tả css cuối cùng được sử dụng.
JabberwockyDecompiler

Câu trả lời:


95

Nó là một ký tự đại diện, điều này có nghĩa là nó sẽ chọn tất cả các phần tử trong phần đó của DOM.

Ví dụ: nếu tôi muốn áp dụng lợi nhuận cho mọi phần tử trên toàn bộ trang của mình, bạn có thể sử dụng:

* {
    margin: 10px;
}

Bạn cũng có thể sử dụng điều này trong các lựa chọn phụ, ví dụ như phần sau sẽ thêm lề cho tất cả các phần tử trong thẻ đoạn:

p * {
    margin: 10px;
}

Ví dụ của bạn đang thực hiện một số thủ thuật css để áp dụng các đường viền và lề liên tiếp cho các phần tử để tạo cho chúng nhiều đường viền màu. Ví dụ: viền trắng bao quanh viền đen.


Lợi thế của việc sử dụng thay p *vì chỉ sử dụng là pgì?
Solomon Closson

7
Không có "lợi thế", đó chỉ là cách bạn chọn tất cả các phần tử con bên trong pthẻ. Vì vậy, nếu bạn đã có một span, b, strong, imgvv bên trong đoạn của bạn, nó sẽ chọn những người và áp dụng các phong cách với họ.
Soviut

30

CSS mà bạn đã tham chiếu rất hữu ích cho một nhà thiết kế web để gỡ lỗi các vấn đề về bố cục trang. Tôi thường thả nó vào trang tạm thời để tôi có thể xem kích thước của tất cả các phần tử của trang và theo dõi, chẳng hạn như phần tử có quá nhiều phần đệm đang đẩy các phần tử khác ra khỏi vị trí.

Thủ thuật tương tự có thể được thực hiện chỉ với dòng đầu tiên, nhưng lợi ích của việc xác định nhiều đường viền là bạn có được manh mối trực quan thông qua màu đường viền cho hệ thống phân cấp của các phần tử trang lồng nhau.


2
Mặc dù ngày nay, trình duyệt được tích hợp sẵn trong các trình kiểm tra hiệu quả hơn nhiều, phải không? Hoặc sử dụng firebug.
Lawrence Dol,

@SoftwareMonkey - Vâng, ngày nay điều đó đúng. Các thanh tra tích hợp là tuyệt vời. Ví dụ: tôi sử dụng Chrome và Ctrl+Shift+csau đó di chuột qua một phần tử và Chrome tô màu nền. Nhanh hơn nhiều so với việc bỏ kiểu dấu hoa thị này vào CSS.
Tom,

1
Mặc dù câu trả lời của Soviut là đúng, câu trả lời này nên được đánh dấu là câu trả lời đúng, vì đây là câu trả lời chính xác cho câu hỏi được hỏi.
Billy Samuel

4

* là một ký tự đại diện. Điều đó có nghĩa là nó sẽ áp dụng kiểu cho bất kỳ phần tử HTML nào. Bổ sung * sẽ áp dụng kiểu cho một cấp độ lồng tương ứng.

Bộ chọn này sẽ áp dụng các đường viền màu khác nhau cho tất cả các phần tử của trang, tùy thuộc vào mức độ lồng ghép của các phần tử.


4

* hoạt động như một ký tự đại diện, giống như trong hầu hết các trường hợp khác.

Nếu bạn làm:

*{
  margin: 0px;
  padding: 0px;
  border: 1px solid red;
}

Sau đó, tất cả các phần tử HTML sẽ có các kiểu đó.


0

trong biểu định kiểu của mình, thông thường, bạn cần xác định quy tắc cơ bản cho tất cả các phần tử như thuộc tính kích thước phông chữ và lề. {font-size: 14px; lề: 0; padding: 0;} / overide cài đặt mặc định của trình duyệt trên các phần tử, tất cả kích thước phông chữ văn bản sẽ được hiển thị dưới dạng kích thước 14 pixel với lề và đệm bằng không, bao gồm h1, ... trước. * /

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.