2012-07-04 30 views
28

Trong this codepen có một bộ chọn css &:hover bộ chọn đó phù hợp với những gì?Bộ chọn '&' chọn gì?

+0

Nếu bạn nhìn một cách cẩn thận, bạn có thể có lẽ đã thấy rằng có (SCSS) được viết bên cạnh tiêu đề tab CSS. –

+0

@Truth: giả sử nhận xét đó hướng đến tôi, sau đó có: Tôi đã thấy điều đó. Tuy nhiên, tôi đã giải quyết câu lệnh rõ ràng trong câu hỏi: "... có một bộ chọn css' &: hover'. " Có lẽ tôi nên làm điều đó rõ ràng hơn, mặc dù. –

+0

Tôi đã tham gia OP –

Trả lời

28

Tôi tin rằng dấu và là một tính năng Sass. Từ các tài liệu:

Referencing Parent Selectors: &

Đôi khi nó là hữu ích để sử dụng selector mẹ một quy tắc lồng nhau trong cách khác hơn so với mặc định. Ví dụ: bạn có thể muốn có các kiểu đặc biệt khi bộ chọn đó được di chuột qua hoặc khi phần tử cơ thể có một lớp nhất định. Trong những trường hợp này, bạn có thể rõ ràng chỉ định vị trí chèn bộ chọn gốc bằng cách sử dụng ký tự & .

26

Chính xác. Trong Sass bạn có thể có một cái gì đó như thế này ...

div { 
    background: green; 

    p { 
     background: red; 

     &:hover { 
      background: blue; 
     } 

     &:active { 
      background: blue; 
     } 
    } 
} 

... mà khi chuyển đổi sang CSS sẽ trở thành này:

div { 
    background: green; 
} 

div p { 
    background: red; 
} 

div p:hover { 
    background: blue; 
} 

div p:active { 
    blue; 
} 

Chỉnh sửa: từ & di chuột: để &: hover

+0

Trên khối mã thứ hai của bạn, không nên là 'div p: hover {background: blue; } 'và' div p: active {background: blue; } '? Tôi chỉ đề cập đến nó để xóa nó lên ... – Beat

+0

Có. Tất nhiên. Tôi xin lỗi. Sai lầm ngu ngốc. Đã sửa. – banzomaikaka

3

Một cách sử dụng ít được biết đến rộng rãi hơn là bạn có thể thêm dấu và vào cuối kiểu để bộ chọn gốc trở thành con.

ví dụ:

h3 
    font-size: 20px 
    margin-bottom: 10px 

.some-parent-selector & 
    font-size: 24px 
    margin-bottom: 20px 

trở thành,

h3 { 
    font-size: 20px; 
    margin-bottom: 10px; 
    } 

    .some-parent-selector h3 { 
    font-size: 24px; 
    margin-bottom: 20px; 
    } 

bạn có thể đọc thêm về & sử dụng ở đây

http://thesassway.com/intermediate/referencing-parent-selectors-using-ampersand