Trong đánh dấu bên dưới, tôi đang tìm kiếm một cách (có thể sử dụng bộ chọn css) để tạo kiểu div nội dung khác nhau tùy thuộc vào sự hiện diện của menu? Menu có thể có hoặc không có mặt ở vị trí đó trong đánh dấu và nếu nó ở đó, tôi cần thêm một số lợi nhuận hàng đầu vào nội dung.Anh chị em có điều kiện CSS khó khăn> bộ chọn con> Có thể thực hiện điều này không?
Tôi tin rằng anh chị em ruột và chọn hậu duệ quy tắc có thể không đi xa ...
"Khi menu hiện diện như một đứa trẻ của tiêu đề thiết lập các lề trên nội dung (có mẹ là một anh chị em ruột của tiêu đề) đến 100 pixel. Nếu không, thiết lập nó để không"
<div class="header">
<div class="sitetitle">site title</div>
<div class="tagline">tagline</div>
<div class="menu">menu</div>
</div>
<div class="main">
<div class="content">content goes here</div>
</div>
Nếu css cho phép nhóm, tôi sẽ làm điều đó theo cách này ...
(.header ~ .menu) + (.main > .content) {margin-top:100px;}
Chắc chắn bạn không thể làm điều đó, nhưng sau đó lại thấy một số quy tắc CSS khá điên rồ. –
Cách duy nhất bạn có thể tạo bộ chọn có điều kiện dựa trên các lớp giả và truy vấn phương tiện ... Thật tuyệt vời những gì bạn có thể làm với: mục tiêu và neo được đặt trước các phần tử bạn muốn chọn hoặc thậm chí ở đầu trang . – esp