Apakah mungkin, selain yang saya lakukan karena tampaknya tidak berhasil, melakukan ini? Saya ingin memiliki subclass yang berada di bawah kelas untuk menggunakan CSS khusus untuk class.subclass tersebut.
CSS
.area1
{
border:1px solid black;
}
.area1.item
{
color:red;
}
.area2
{
border:1px solid blue;
}
.area2.item
{
color:blue;
}
HTML
<div class="area1">
<table>
<tr>
<td class="item">Text Text Text</td>
<td class="item">Text Text Text</td>
</tr>
</table>
</div>
<div class="area2">
<table>
<tr>
<td class="item">Text Text Text</td>
<td class="item">Text Text Text</td>
</tr>
</table>
</div>
Sehingga saya bisa menggunakan class = "item" untuk elemen di bawah class css induk "area1", "area2". Saya tahu saya bisa menggunakan class = "area1 item" agar ini berfungsi, tetapi saya tidak mengerti mengapa harus terlalu bertele-tele tentangnya. Bukankah seharusnya subkelas css melihat kelas induknya di bawah untuk mendefinisikannya?
Catatan: ini berfungsi di IE (menggunakan 7 sekarang), tetapi di FF tidak, jadi saya berasumsi ini bukan cara standar CSS untuk melakukan sesuatu.
FYI, ketika Anda mendefinisikan aturan seperti yang Anda lakukan di atas, dengan dua pemilih dirangkai bersama:
Itu berarti:
Seperti:
Sayangnya itu tidak berfungsi di IE6, tapi itulah artinya.
sumber
Masalah Anda tampaknya ada ruang yang hilang antara dua kelas Anda di CSS:
Seharusnya
sumber
Apakah Anda ingin memaksa hanya anak-anak yang dipilih? http://css.maxdesign.com.au/selectutorial/selectors_child.htm
sumber
Beri spasi antara .area1 dan .item, misalnya:
gaya ini berlaku untuk elemen dengan item kelas di dalam elemen dengan area kelas1.
sumber
Beri spasi di antara kelas Anda
Berikut referensi yang sangat bagus untuk CSS Selectors .
sumber
Berikut dari balasan kR105 di atas:
Masalah saya mirip dengan OP (Poster Asli), hanya terjadi di luar tabel, jadi subclass tidak dipanggil dari dalam lingkup kelas induk (tabel), tetapi di luar itu, jadi saya harus MENAMBAHKAN penyeleksi , seperti yang disebutkan kR105.
Inilah masalahnya: Saya memiliki dua kotak (div), masing-masing dengan border-radius (HTML5) yang sama, padding dan margin, tetapi perlu membuatnya berbeda warna. Daripada mengulang 3 parameter tersebut untuk setiap kelas warna, saya ingin sebuah "superclass" berisi border-radius / padding / margin, lalu hanya "subclass" individual untuk mengekspresikan perbedaannya (tanda kutip ganda di masing-masing kelas karena mereka sebenarnya bukan subclass - lihat posting saya nanti). Begini cara kerjanya:
HTML:
CSS:
Semoga seseorang menemukan ini bermanfaat.
sumber
Itulah tulang punggung CSS, "cascade" di Cascading Style Sheets.
Jika Anda menulis aturan CSS dalam satu baris, ini akan memudahkan untuk melihat strukturnya:
Menggunakan banyak kelas juga merupakan penggunaan CSS tingkat menengah / lanjutan yang baik, sayangnya ada bug IE6 terkenal yang membatasi penggunaan ini saat menulis kode lintas browser:
IE6 MENGABAIKAN pemilih pertama dalam aturan kelas jamak, jadi IE6 benar-benar menerapkan aturan .area1.larger sebagai
Artinya itu akan mempengaruhi SEMUA elemen .lebih besar.
Ini adalah bug yang sangat buruk dan disayangkan (salah satu dari banyak) di IE6 yang memaksa Anda untuk tidak pernah menggunakan fitur CSS itu jika Anda menginginkan satu file CSS lintas-browser yang bersih.
Solusinya kemudian adalah dengan menggunakan prefiks nama kelas CSS untuk menghindari bertabrakan dengan nama kelas generik:
Mungkin juga menggunakan hanya satu kelas, tetapi dengan cara itu Anda dapat menyimpan CSS dalam logika yang Anda inginkan, sambil mengetahui bahwa .area1Larger hanya memengaruhi .area1, dll.
sumber
Kelas yang Anda terapkan pada div dapat digunakan sebagai titik referensi untuk elemen gaya dengan div itu, misalnya.
Untuk menjadi super semantik, Anda harus memindahkan kelas ke tabel.
sumber
Anda juga dapat memiliki dua kelas dalam elemen seperti ini
<div class = "item1 item2 item3"></div>
setiap item di kelas adalah kelasnya sendiri
sumber
kR105 menulis:
batas kotak dan teks akan berwarna biru, karena gaya .box2 menetapkan nilai-nilai ini.
Juga di posting saya sebelumnya, saya harus menekankan bahwa menambahkan selektor seperti yang saya lakukan tidak sama dengan membuat subclass di dalam kelas (solusi pertama di utas ini), meskipun efeknya serupa.
sumber