internet pencereler Android
Genişletmek

CSS kullanarak sorunsuz bir şekilde açın. CSS'de dikey açılır menü: nasıl yapılır

Yazardan: Herkese hoş geldim. Bazı nedenlerden dolayı, web yöneticilerinin açılır menüsü komut dosyalarıyla ilişkilendirilir, ancak bu tür bir navigasyonu yapmak için uzun zamandır saf CSS'de kesinlikle sakin bir şekilde yapabilirsiniz. Dahası, böyle bir menü daha kötü olmayacak. Bugün size CSS'de bir açılır menü oluşturmayı göstereceğim. Paylaşacağım, bu yüzden konuşmak için tarif.

Ders Planı ve Menüyümüzü İşaretleme

Genel olarak, önce menünün kendisini nasıl oluşturduğumuzu tanımlayacağız. HTML5'te, Standart Yolu kullanarak NAV konteynerinde oluşturduğu kabul edilir. İşaretli liste. Bunu yapalım. İşaretçiler, daha sonra CSS ile kaldıracağız, menüde bize gerek yok.

Aslında, iç içe geçmiş listelerle HTML işaretlemesine hemen yazarım. Yani, listemiz iki seviyeli olacak - başka bir listeye sahip olacak. Yani, bir açılır menü oluşturacak her öğe 1 listesi için.

Burada var Önemli anBu, düşmeyi yapmak için her maddeye ihtiyacınız olmayabilir, ancak sadece bazıları. Sorunsuz, daha sonra kayıpsız noktalarda sadece yatırım listeleri oluşturmayın.

Aslında, burada hepsi işaretleme:

< nav id = "nav" >

< ul >

< li > < a href = "#" > Paragraf 1< / a >

< ul class = "second" >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< / ul >

< / li >

< li > < a href = "#" > Nokta 2< / a >

< ul class = "second" >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< / ul >

< / li >

< li > < a href = "#" > Nokta 3< / a >

< ul class = "second" >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< / ul >

< / li >

< li > < a href = "#" > Paragraf< / a >

< ul class = "second" >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< li > < a href = "#" > Alt paragrafı< / a > < / li >

< / ul >

< / li >

< / ul >

< / nav >

Çok büyük olduğunu anlıyorum. Bu, çok fazla kod yazmak için gereken iç içe geçmiş listelerin problemidir. Ancak 4 ana eşya yaptığımız gerçeğini ve her biri için açılır menü olacaktır.

Aslında, tüm navigasyon NAV tanımlayıcısını ayarladım ve yatırım yapılan tüm listeler, yatırım yaptıklarını anlamak için ikinci stil sınıfıdır.

Mükemmel, Markup'a hazırız, sonuca bakabilirsiniz:

Evet, korkunç görünüyor. Ancak şimdi CSS çalışmalarına dahil edileceğiz ve birkaç dakika içinde navigasyonumuz dönüştürülecek. Hadi çalışalım.

CSS-Stilleri yazıyoruz

Yapacağım ilk şey tüm öğeler için tüm varsayılan girintileri dondur. Sadece bize müdahale edecekler, girintileri kendilerini daha iyi ayarlayacaklar.

* (Marj: 0; Dolgu: 0;)

marj: 0;

dolgu: 0;

#Nav (yükseklik: 70px;) #nav ul (liste tarzı: Yok;)

#Nav (

yükseklik: 70px;

#Nav ul (

liste - Stil: Yok;

Şimdi, aslında, menünün ne olacağına karar vermek için ihtiyacımız var. Yatay veya dikey mi? Öncelikle yatay yapmayı ve örneğinde her şeyi görmeyi öneriyorum. Bunu yapmak için böyle stilleri yazın:

#Nav\u003e ul\u003e li (şamandıra: sol; genişlik: 180px; pozisyon: göreceli;)

#Nav\u003e ul\u003e li (

Şamandıra: Sol;

genişlik: 180px;

konum: Göreceli;

İşaretin yardımı ile\u003e UL'ye doğrudan yatırılan ve doğrudan NAV'ye yatırılan listenin maddelerine hitap ediyoruz. Bu, stilin ekteki listelerin noktalarına uygulanmamasına izin verdiği için çok önemlidir. Gerçek şu ki, ana liste öğelerindeki fikrim tarafından yatay olarak ve iç içe geçmiş - dikey olarak bulunacaktır.

Ama sen, elbette, fikrinizle uyum içinde farklı yapabilirsin. Tüm öğeleri tek bir satırda yapabilirsiniz.

Her durumda, yukarıdaki kod, umarım anlarsınız. Ana listenin öğelerinin sol kenara basmasına neden olur, böylece hepsi bir satırda bir araya gelirler, ancak blok elemanları olmalarına rağmen. Ayrıca onlara bariz bir genişlik ve göreceli konumlandırma sordum.

Konum nedir? Yatırım listelerini yerine getirmek için gereklidir. CSS'de konumlandırıldıysanız, muhtemelen göreceli konumlandırma ünitesini ayarlarsanız, o zaman tüm öğeleri bu belirli bloğun içinde kesinlikle yerleştirilebilir ve tüm tarayıcı penceresi değil.

Bu arada, zaten varmıştık:

Bu ekran görüntüsü tarafından zaten örnek bir sonuç hayal edebiliyorsunuz. Tabii ki, hala eşyaları yerleştirmek için güzel olmalıyız, böylece gözlerin navigasyonu görürken merhamet için yalvarmaz.

#Nav li a (ekran: blok; arka plan: # 90DA93; sınır: 1px katı # 060A13; Renk: # 060A13; Dolgu: 8px; Metin Hizası: Merkezi; Metin-Dekorasyon: Yok;) #nav li a: Hover ( Arka plan: # 2F718E;)

#Nav li a (

ekran bloğu;

arka plan: # 90DA93;

sınır: 1px katı # 060A13;

renk: # 060A13;

dolgu: 8px;

metin - Hizala: Merkez;

metin - Dekorasyon: Yok;

#Nav li a: Hover (

arka plan: # 2F718E;

İlk olarak, bağlantıların kendileri engellenmesi gerekir. Bu, iç girintileri çalıştırmak için gereklidir ve tüm özellikler doğru kullanıldı. Daha sonra, arka planın, metnin, çerçeve parametrelerinin, iç girintilerin ve merkezdeki metin hizalamasının renklerini belirtirim. Sonunda, alt çizgileri iptal ediyorum.

Bütün bu parametreler mutlaka yaptığım gibi reçete etmiyor. Renkler keyfi bir şekilde seçebileceğiniz, başka birisini yapmak veya kullanmamak için, girintiler azaltılabilir veya arttırılabilir.

Bu durumda, işareti\u003e kullanmadık, böylece belirtilen kurallar, iç içe geçmiş ürünler de dahil olmak üzere tüm bağlantılar için geçerli olacaktır. Yani, şimdi aşağıdakilere sahibiz:

Mükemmel, ancak alt paragrafların görülmemesi gerektiğini, istenen maddeye geldiğinizde ortaya çıkmaları gerektiğini anlıyorsunuz. Bundan, menümüz masaya benzer. İyi, iç içe maddeleri gizleme zamanı.

#Nav li .Second (Ekran: Yok; Konum: Mutlak; Üst: 100%;)

#Nav li .second (

görüntü yok;

konum: Mutlak;

en iyi 100%;

İlk önce, tamamen ekli listeleri gizleyin. İkincisi, onlara mutlak konumlandırma ve koordinat üstü: 100%. Bu, açılır menünün, ait olduğu ana kalem altında açıkça gösterileceği anlamına gelir. Bu öğenin yüksekliğinin% 100'ünün altında.

Şimdi web sayfasında sadece ihtiyacımız olan ana menüde görüyoruz.

Kaybı uyguluyoruz

En önemli şeyi yapmaya bıraktık - çok zararı gerçekleştirmek için. Bunda karmaşık bir şey yok, bu koda bakın:

#Nav li: Hover .Second (Ekran: blok;)

#Nav li: Hover .Second (

ekran bloğu;

Bu kod tertemiz çalışacak. Ana menüde gezindiğinde, ekli liste görünür hale gelir. Ve sadece imlecin yönlendirildiği maddeye yatırılan liste.

Sadece bir küçük problem var - iç içe maddelerin genişliği, ana genişliğe karşılık gelmiyor. Ancak ilgili stilleri ekleyerek çok kolay çözülür:

#Nav li li (genişlik: 180px;)

#Nav li li (

genişlik: 180px;

Hepsi, sorun çözüldü:

Her şey mükemmel çalışıyor. Ana öğeye ulaştığınızda ilgili açılır menü belirir. İmleci yana çıkarırsanız - kaybolur. İmleci ekli parçalara çevirirseniz, bunlara tıklayabilir ve sitenin istediğiniz bölümüne gidersiniz. Böylece, size scriptler olmadan kesinlikle çok basit ve kolay bir açılır menü yaptık.

Menüyü dikey olarak çıkarın

Peki, iyi, yatay navigasyonla, tamamen çözdük, ancak sitelerine ek olarak, çok sık dikey ile karşılaşılır ve ayrıca bırakılabilir. Aslında, yataydan dikeyden menüyü yeniden verin çok kolaydır, kelimenin tam anlamıyla birkaç kod satırını değiştirmemiz gerekecektir.

İlk olarak, şamandırayı çıkarmanız gerekir: ana nokta listesinden sola. Bu özellik, ürünlerimizin bir satırda gösterildiğine katkıda bulunur, ancak navigasyon dikey olması gerekirse neden ihtiyacımız var?

Şimdi #Nav Li .Second seçicisi için kuralları değiştirmeye devam ediyor, yani yatırım listeleri için, yani, biraz farklı konumlandırmaları gerekir. Böyle:

#Nav li .Second (Ekran: Yok; Konum: Mutlak; Sol:% 100; Üst: 0;)

#Nav li .second (

görüntü yok;

konum: Mutlak;

sol:% 100;

Üst: 0;

Yani, bir yerine iki koordinat kaydetmek gerekir. Öncelikle, yatay navigasyon durumunda, fikrin, menünün öğelerinin ana noktalar altında gösterilmesi gerektiğini söyledim. Dikey menü durumunda, uygun değildir - madde tarafında gösterilmelidir.

Bu nedenle, yukarıdaki% 100'ü değiştiriyoruz:% 100. Ek olarak, koordinat üstü de gereklidir. 0 soruyoruz, böylece ekli menü, geçerli olan öğeyle aynı düzeydedir.

Her şey, şimdi her şey işe yaramaz. Test edebilirsin. Gördüğünüz gibi, sadece birkaç kod satırını yeniden yazmanız gerektiğini söylediğimde yalan söylemedim.

Birden fazla seviyeli yatay menü

Aynı yaklaşımla ilgili olarak, eğer gerekli ise, daha fazla menü seviyesi oluşturabilirsiniz. Örneğin, alt öğelerden birine yatırılacak olan ana menü listesinin dördüncü maddesi için yaratalım.

Mikhail Sat, 09/20/2014 - 12:28

Yorumumun görünmemesi değil bir şey - yinelenen:

===========
Teşekkür ederim, ancak menüden düşmüyorum (int.expl-8 altında). Şunlar. Dize çalışmıyor "UL. nav.li: Hover ul (Ekran: blok;) "
Bana sorun ne olduğunu söyle?

Malzemenin söndürülmesi var:

Bu hatta güzel olurdu (ul.aaaaa li: Hover ul (ekran: blok;)) "Düzen Menüsü" nin sorumlu olduğunu ve daha derin bir iç içe geçme seviyesinin saklanmasından dolayı ne bir kısmının sorumlu olduğunu ifade etmek için

Örneklerde, her satırın yaptığı yorumu sağladı.

Özellikle, neden bir dizgiye ihtiyacınız olduğunu belirsizdir "

Bu çizginin önünde, görünüşte durumla ilgili olmayan 2 satır var (ev)
ve dikey menüyü görün). Yeni malzemeye yabancı olan bir kişi (yani, yazdığınız kişi için), aşağı açılır menü için bu satırların gerekli olmadığını fark etmek için zaman alır. Ya da hala ihtiyaç var mı?

Hedder'de, örneğinizde 3 satır var. Bunlardan sadece biri konuyu ifade eder (TSS dosyasının adını ayarlar) ve 2 kişi - hayır. Aynı zamanda malzemenin gelişimini de karmaşıklaştırır. Dahası, bilgisayarımda, böyle bir Heder genellikle "UTF-8" değil, "Windows -..." olarak yüklemem gerektiğinden, yanlış bir metin ekranına yol açar.

Örnekte, "style.css", "blok menü" ve "NAV" kelimelerinin olmadığı belirsizdir. anahtar kelimelerve kullanıcı tarafından belirtilen isimler. Deneysel olarak anladım

Kısacası, örneklerde sadece durumla ilgili olan şey olup olmadığını ve böylece satır bağlamında net olmayan, "davaya karşı tutum" nın açıklanmasına ilişkin yazılacaktır.

  • Yorum yazmak için giriş yapın

Oleg Sat, 09/20/2014 - 23:50

En hacimli yorum !!!
Yorumlar sadece ılımlılıktan sonra, böylece yorumunuzu hemen görmediniz.
Her şeye cevap vermeye çalışacağım. Bunun neden burada olduğu sorularla başlayalım. Taki Evet, çalışma sürümünden iki bağlantı sızdırılmış.
Peki ya metin ekranı değil. Bir yazıya örnek olarak aynı kodlama olmasına rağmen bu sayfayı okuyabilir ve kontrol edebildiniz.
Bu yazı mutlak yeni başlayanlar için tasarlanmamıştır ve abonelerin talebi üzerine yazılmıştır. Kesinlikle her şeyi açıklarsanız, sınıflar ve tanımlayıcılar, bloklar, konumlandırma, psödo-seçiciler, kaskad ve benzeri hakkında bilgi vermek gerekli olacaktır. Oldukça büyük makale ortaya çıkıyor ve en önemlisi işe yaramaz.
Ul.Nav li: Hover\u003e ul (Ekran: Blok;) Önceden Gizli Öğeyi Gösterecektir. Menü öğesine (Ul.Nav Li) üzerinde durduğunuzda bir şey (koda bakarak) sökürseniz, çalışacaktır: Hover ve ilk ekli liste\u003e UL, ekranın değerinin değeri nedeniyle görünür olacaktır. değeri blokta hiçbiri ile değiştirecek.

Selamlar! Eğer bir acemi brandratorsanız, daha sonra veya daha sonra, bir şekilde sayfalarınızı canlandırırsanız, en azından biraz etkileşimli hale getirirsiniz. CSS animasyonundan kaçınmak imkansızdır. Ancak, nerede ve nasıl uygulanacağını bilmeniz gerekir.

Bugün söyleyeceğim temiz bir açılır menü nasıl yapılırCSS. ve onu pürüzsüzlük nasıl eklenir dan cSS'yi kullanma. Animasyon. Eğer bilmiyorsanız, AZA ile tanışmanın zamanı geldi.

Menü Menüsü HTML + CSS

Başlamak için, ne çalışacağınızla çalışmak için, basit bir tek seviye menüsünü takip edelim. Bundan yeterince netlik için tasarımla çok rahatsız olmayacağız:

Neyimiz var? "Top_Menu" tanımlayıcısına ve bu listenin öğelerine sarılmış referanslarla en sıradan ölçülen liste. Tüm trite ve basit. Menü öğelerini vurduğunuzda rengi değiştirin ... Hepsi zaten bildiğiniz ve nasıl yapacağınızı anlarsınız (umarım).

İkinci seviye bir menü ekleyin

Çok seviye bir menü yapmak için, ilk olarak ikinci ölçülen bir liste eklememiz gerekir. Bence ilk derslerde bir yerdeydin. Ve ayrıca eklemek için listemizin içinde değil, yani listenin içinde, yani, bu, etiketi " li", Kapanış etiketinden hemen sonra" A ".

Yatırım listelerinin kesinlikle ilişkili olarak konumlandırılması " li"İçinde yatırım yapıldılar. Ve tüm " li» Üst düzey Nispeten pozisyon ( akraba.). Böylece aşağı açılır menü, üst düzey menümüzden hemen sonra, (düşme - " inner_menu.") Sormanız gerekiyor

Konum: Mutlak; En iyi 100%;

Yani, ebeveynin üst sınırından bir girinti, ebeveynin yüksekliğine eşit olacaktır. Çok mantıklı, bence.

Konumlandırmaya ek olarak, stil açılır menüsünü üst düzey menü olarak vermeniz gerekir. Elma ağacından elma, dedikleri gibi ...

Gördüğünüz gibi, açılır menüyümüz düşmemeye benziyor, ancak düştü ve asılı görünüyor. Ama hiçbir şey, yakında düzeltileceğiz.

Açılır menüden nasıl bırakılır?

Daha kolay bir şey yok! Yatırım listemizi açılır menü yapmak için, sadece saklamanız gerekir! Ve sonra yalnızca fare imleci açılır menüyü içeren üst düzey menü öğesinin üzerinde süpürülürken açın. Sesler, belki biraz zor, ancak aslında sadece birkaç kod satırı çözülür.

Açılır menü ekleyin:

Görüntü yok;

Ve görüntülemek için kaydolmanız gerekir:

#POP_MENU\u003e LI: Hover\u003e ul (Ekran: Blok;)

Tüm seçicilerin oluşturulması bize ne söyler? Sonundan okuduk. Birinci seviye listesinin elemanının içinde yatan ikinci seviye listesi için stilleri (vizyon) ayarladık, ancak bu stiller sadece fareyi (vurgulu) öğeye getirirsek çalışacak "İkinci seviyemizin yatırdığı Li ".

Umarım açıkça ifade ederdim. Değilse, birkaç kez okumaya çalışın. Ve hatta daha iyi bunu anlayın, koda bakın. Bize bakıyoruz:

Evet, biz istediklerini elde ediyor gibiydik - aşağı açılır menü, en gerçek açılır menü, annem! Ama bir şeyi özlüyor. Ne var biliyor musun? Pürüzsüzlük! Sonuçta, her şey menü düşmez gibi görünüyor, ama sadece görünür. Ve çok keskin, anında bile, söyleyebilirim.

Peki, bir kısmını biraz koyalım.

Pürüzsüz açılır menü kolaydır

Öyleyse, saf CSS'de yumuşak bir açılır menü yapalım. Neden yaptın? Çünkü insanlar her şeyin pürüzsüz olduğunda ve Mongongo'yu seviyorlar ... ve güzel görünüyor. Sitenizin kullanılabilirliğine artı olacaktır. Hadi!

Unutmayın, sadece 50px ve 300px, 0 ve% 100, 0.5 ve 1.0 vb. Gibi yalnızca doğru matematiksel değerleri canlandırabilirsiniz. Bizim durumumuzda, açılır menümüzün iki durumunu canlandıramayacağız ( görüntü yok; ve ekran bloğu;).

Ancak onları saydamlık ile değiştirebiliriz - Opaklık: 0 ve opaklık: 1. Ve menümüzün kendisini şeffaf bir durumdan kendini göstereceği zaman ayarlayın. Evet, gerçekten işe yarayacak, ama tam olarak beklediğiniz etkisi değil. Öyleyse biraz daha zor yapalım. Ama buna değer, inan bana.

Animasyonun daha pürüzsüz ve öngörülebilir hale getirilmesi için, açılır menünün noktalarının sabit bir yüksekliğini ayarlamam gerekiyordu, ancak onsuz yapılması mümkün olsa da. Ağırlık yöntemleri, sadece kombinasyonları icat eder ve görevi çözer.

Koddan görülebileceği gibi, açılır listenin elemanlarının yüksekliğini ve saydamlıklarını anlattık. Aşağı açılır menünün güzel pürüzsüz animasyonunu yapmak için bu yeterli olduğu ortaya çıktı.

Animasyon için neye ihtiyacımız vardı? Menümüzün puanlarının iki durumu, yani bu durumları araştırmakta olan geçiş özelliği, yani tüm ara değerler, tüm ara değerler tamamlandı. Bu kadar!

JQuery'nin kullanımı ile yapılması daha da kolay olacak, ancak önce bugün temiz CSS ile çalışacağımızın da belirtti. Ve daha da güzel, yapmanın, Beziers'in eğrilerini animasyonlara ekleyerek, bu konu bugün ötesine geçti. Ama kesinlikle daha sonra geri döneceğiz.

Çıktı:

Artık arkadaşlarınızla övünebilir ve saf CSS'de bir açılır menü yapmayı bilebilirsiniz. Bu, daha faydalı olduğunuz gerçekten faydalı bir beceridir. Biliyor musun, statik bir menü olan siteleri gördünüz mü? Hayır, çoğu site tam olarak açılır menüye sahiptir.

Bu arada, ilk CSS dersimdi. Nasılsın? Her şeyin açıklandığını veya hala çiğnemesi gerektiğini anlıyorum? Ve CSS'de Lifehakov konusu hakkında makaleler yazmaya devam ediyor mu?

Hızlı toplantılara dikkatiniz için teşekkür ederiz!

Sonuna kadar okudun mu?

Bu faydalı mıydı?

İyi hayır

Tam olarak neyi sevmedin? Makale eksik mi yoksa haksızdı mı?
Climmenia'da yazın ve düzeltmeye söz veriyoruz!

Bir web sitesi oluşturmaya karar veren herkes, sevimli yaratma ihtiyacı ile karşı karşıya siteniz için menü. Bu yazıda, her zamanki HTML kodunun ve basit CSS kurallarının yardımı ile size nasıl bir şey yaratabileceğinizi söyleyeceğim. aşağıya doğru açılan menüHangi değişimi ve takviyesi kolaydır. Ve bunun için JavaScript koduna ihtiyacımız olmayacak!

İlk ve en önemli aşama, açılır menü oluştururken, yapısını oluşturmaktır. Bunu ölçülen listeler kullanarak bunu yapmak en iyisidir. Basit bir menü oluşturalım:

Oldukça basit ve zor değil HTML kodu olduğu ortaya çıktı. Bu listeye benzeyecek.

Bir sonraki aşamada, menüyümüzü daha fazlasına veriyoruz. güzel bir manzara. CSS kullanımıyla kolayca yapılabilir.
Ölçülen listedeki mercanları, girintilerdeki ve ayrıca menümüzün genişliğini ayarlayan ilk şey.

#Nav ul (Marj: 0px; Dolgu: 0px; Liste Stili: Yok; Genişlik: 200px;)

Şimdi liste öğelerinin konumunu ayarlamamız gerekiyor. Bizim beri menü Dikey olacak, işimizi kolaylaştırır. Ancak, mülkün değerini ayarlamamız gerekiyor. "Durum" , gibi "Göreceli" . Alt menüyü ana menüye göre nispeten konumlandırmak için gereklidir. Ayrıca menü öğeleri için alt alt çizgileri de ayarlayacağız.

#Nav ul li (pozisyon: göreceli; kenarlık altlığı: 1px katı #ccc;)

Şimdi düzeltmeniz gerekiyor alt menü. Menüyümüzü ana menünün sağındaki ana menünün sağında istediğimizden beri, imleç bu öğenin üstünde olduğunda, listeye, özelliği girmemiz gerekir. "Durum" Değeri ayarla "Mutlak" . Ayrıca pozisyonunu sormamız gerekiyor. Bu aşağıdaki gibi yapılır.

#Nav li ul (Konum: Mutlak; Sol: 200px; Üst: 0; Ekran: Yok;)

Nitelikleri kullanma Ayrıldı. ve Üst. Gabaniten menü öğesinde alt menümüzün mutlak konumunu soruyoruz. Ayrıca bir öznitelik atadım "GÖRÜNTÜLE" değer vermek "YOK" Sayfayı açarken alt menüyü görmek istemiyoruz.

Yani, şimdi menümüz buna benziyor.

Şimdi bağlantılarımızın görünümünü verelim. Her şeyden önce, her bağlantının, onu içeren listenin içindeki tüm yeri işgal etmesi için, bir öznitelik atayın "GÖRÜNTÜLE" değer vermek "Blok" . Ayrıca alt alt çizgiyi çıkarın ve arka planın rengini ve bağlantının metninin rengini ayarlayın.

#Nav ul li a (ekran: blok; metin dekorasyonu: Yok; Renk: # 777; arka plan: #fff; dolgu: 5px;)

#Nav li: Hover ul (Ekran: blok;)

Şimdi menümüz zaten çalışıyor ve böyle görünüyor.

Ona daha çekici bir görünüm vermeye devam ediyor.

Başlamak için, Menümüzün eşyalarına geldiğinizde, metnin arka planını ve rengini değiştirdikten sonra yapalım. Bunu yapmak için aşağıdaki kodu ekleyin.

#Nav li: Hover a (renk: #fffffff; arka plan: URL (IMG / Fone-Tr.png);)

Burada bu resmi burada bir arka plan olarak kullanıyorum, ancak başka bir rengi kullanabilir ve doldurabilirsiniz (örneğin: arka plan rengi: # 0000ff; ).

#Nav li: Hover ul A: Hover (arka plan rengi: #cccccc; arka plan-resim: Yok; Renk: #ffffff;)

Bu kadar! bizim HTML ve CSS'de açılır menü Hazır. Ne olduğunu görebilirsiniz.

Bitirmek mümkün olacağı gibi görünüyor, ama hayır. Maalesef Erken Versiyonlar Internet Explorer. Psödo sınıfını anlamak : Hover Sadece etiket için - Böylece lI: Hover Alt menüsünün görünümünü bağladık ve arka plan rengini değiştirdik, hiçbir şey söylemez.

Bu sorunu ortadan kaldırmak için küçük bir javascript kodu ekleyin:

Şimdi yapalım, böylece bir alt menünüz olduğunda, arka planının rengini de değiştirdi. Bunu yapmak için aşağıdaki kodu kullanın:

Bu, sınıfı "eklemenizi sağlar" jshover. Herhangi bir öğeye

  • imlecin geçtiği. Bu özellik yalnızca Internet Explorer'da çalışır - diğer tarayıcılar için, bu sadece gerekli değildir.

    Şimdi menü IE'de kazandığı, ek seçicideki zaten mevcut üç kurallara ekle li.jshover.:

    #Nav li: hover ul, #nav li.jshover ul (

    }

    #Nav li: Hover a, #nav li.jshover a (

    }

    #Nav li: Hover ul A: Hover, #Nav li.jshover ul A: Hover (

    }