Şeffaf CSS arka plan rengi


91

Yazı tipini etkilemeden opaklık kullanarak liste menüsünün arka planının kaybolmasını istiyorum. CSS3 ile mümkün mü?


Evet tabi! Bunu şu
numarayla

Yanıtlar:


120

artık rgba'yı aşağıdaki gibi CSS özelliklerinde kullanabilirsiniz :

.class {
    background: rgba(0,0,0,0.5);
}

0,5 şeffaflıktır , değerleri tasarımınıza göre değiştirin.

Canlı demo http://jsfiddle.net/EeAaB/

daha fazla bilgi http://css-tricks.com/rgba-browser-support/


Teşekkür ederim. ancak liste menüsündeki varsayılan ok işaretini yazı tipini etkilemeden yeniden göstermek istiyorum
Saranya

1
Bunu daha kısa yazmanın bir yolu var rgba('black', 0.5)mı?
phil294

44

Bu üç seçeneği aklınızda bulundurun (3 numaralı seçeneği istiyorsunuz):

1) Tüm eleman şeffaftır:

visibility: hidden;

2) Tüm eleman biraz şeffaftır:

opacity: 0.0 - 1.0;

3) Öğenin arka planı şeffaftır:

background-color: transparent;

14

evet, bu mümkün. arka plan renginiz için sadece rgba-sözdizimini kullanın .

.menue{
  background-color: rgba(255, 0, 0, 0.5); //semi-transparent red
}

2
Selam! Aplha kanalıyla 'background-color' CSS tanımı hakkında bir şey biliyor musunuz, ancak renk için #HEX değerini kullanarak mı?
Piotr Stępniewski

PiotrStępniewski @ Muhtemelen geç ama şimdi böyle sözdizimi (bkz orada cevabımı )
FZS

10

İşte CSS adlı renkler kullanan bir örnek sınıf:

.semi-transparent {
  background: yellow;
  opacity: 0.25;
}

Bu,% 25 opak (renkli) ve% 75 şeffaf bir arka plan ekler.

CAVEAT Maalesef, opaklık bağlı olduğu tüm öğeyi etkileyecektir .
Dolayısıyla, bu öğede metin varsa, metni de% 25 opaklığa ayarlayacaktır. :-(

Bunu aşmanın yolu, rgbaveyahsla , istediğiniz arka plan "renginin" bir parçası olarak saydamlığı belirtmek yöntemlerini . Bu, öğenizdeki diğer öğelerin şeffaflığından bağımsız olarak arka plan şeffaflığını belirlemenize olanak tanır.

Mavi bir arka planı diğer unsurları etkilemeden% 75 şeffaflığa ayarlamanın 3 yolu:

  • background: rgba(0%, 0%, 100%, 0.75)
  • background: rgba(0, 0, 255, 0.75)
  • background: hsla(240, 100%, 50%, 0.75)

8

Bu durumda background-color:rgba(0,0,0,0.5);en iyi yoldur. Örneğin:background-color:rgba(0,0,0,opacity option);


6

Bunu başarmak için, background-colorelemanın üzerinde değişiklik yapmanız gerekir .

(Yarı) şeffaf bir renk oluşturmanın yolları:

  • CSS renk adı transparent tamamen şeffaf bir renk oluşturur.

    Kullanım:

      .transparent{
        background-color: transparent;
      }
    
  • Alfa kanalını (opaklık) ve işlevlerine eklemenizi sağlayan rgbaveya hslarenk işlevlerini kullanma . Alfa değerleri 0 - 1 arasındadır.rgbhsl

    Kullanım:

      .semi-transparent-yellow{
        background-color: rgba(255, 255, 0, 0.5);
      }
      .transparent{
        background-color:  hsla(0, 0%, 0%, 0);
      }
    
  • Daha önce bahsedilen çözümlerin yanı sıra, HEX formatını alfa değeri ( #RRGGBBAAveya #RGBAnotasyon ) ile de kullanabilirsiniz .

    Bu oldukça yenidir (CSS Renk Modülü Seviye 4'te bulunur), ancak daha büyük tarayıcılarda zaten uygulanmıştır (üzgünüm, IE yok).

    Bu, alfa kanalını (opaklık) da onaltılık bir değer olarak değerlendirdiğinden, 0 - 255 ( FF) aralığında olmasını sağladığından, diğer çözümlerden farklıdır .

    Kullanım:

      .semi-transparent-yellow{
        background-color: #FFFF0080;
      }
      .transparent{
        background-color: #0000;
      }
    

Bunları da deneyebilirsiniz:

  • transparent:

  • rgba():

  • #RRGGBBAA:


5

Bunu dene:

opacity:0;

IE8 ve öncesi için

filter:Alpha(opacity=0); 

W3Schools'tan Opaklık Demosu


6
Bağlandığınız site ... korkunç.
John Dvorak

1
@TheWandererr Bağlantı verilen sayfayla başlayacağım. Örnek kod göstermesi gerektiğini unutmayın. Ve yine de ... Girinti yok. HTML5 belge türünü kullandıklarını, yani sayfayı buraya bağlandıktan sonra güncellediklerini veya aday öneri durumunda bile HTML5'i yarım yıl önce kullandıklarını unutmayın. Sonraki: Satır içi CSS, önbelleğe alma ve okunabilirlik açısından kötüdür. Burada kullanmak zorundalar çünkü tüm sayfa kaynağı için yalnızca bir panele sahipler, ancak jsfiddle (2010) gibi birden çok panel kullanıyorlarsa. Ve hatta şeffaflığı gösteren bir sayfa için
John Dvorak

1
@TheWandererr daha iyisini yapabilirdi. Birincisi, yuvalanmış öğeler üzerindeki etkiyi göstererek veya bir fareyle üzerine gelme eyleminin onu devre dışı bırakmasına izin vererek. Sonra tüm o "w3 konsorsiyum gibi davranmak var, ve başka bir veya iki reskin başlattığınızı öğrendiğinizde, ayrıca w3something" olarak etiketlendi - bana sorarsanız biraz sahtekâr. Ayrıca örneklerinin "okunabilirlik için basitleştirilebileceğini" ve "sürekli olarak gözden geçirilebileceğini" söylüyorlar, ancak boşlukları kaldırmak okunabilirliğe yardımcı olmuyor ve IE7 desteği de tam olarak yeni trend değil. Ayrıca, güvenilirliğini zedeleyen bir kağıt parçası için kim 100 dolar ödemeyebilir ki?
John Dvorak

1
@TheWandererr IIRC, testin bir ön izlemesine sahiplerdi. Sorular, önemsiz şeyler ve giriş seviyesi şeylerin bir karışımıydı. Bazı cevapları da kısmen yanlış almış olabilirler. CSS eğitimlerinin opaklık kısmına gelince: görüntüleri saydam yapmaya adanmış üç başlık - yalnızca CSS seçiciyi değiştirirler. Sonra iki paragraf daha - biri RGBA'yı tanıtmak için (son olarak sadece arka plan şeffaftır) ve diğeri "entegrasyon örneği" olarak (yay! Ayrıca, girinti yok). O zaman ... işte bu. Opaklık hakkında başka bir şey yok. Ve hayır, ileride "gelişmiş opaklık" konusu da yok.
John Dvorak

1
@TheWandererr Javascript hakkında konuşalım: Tüm örnekleri şunları içerir: girinti yok (Javascript kodunda bile); innerHTML =(hey, en azından document.write2012'de yaptıkları ve uyarılardan daha iyidir , ancak yine de jQuery öğreticisinin dışında, ilgili yöntemleri her bölüm için bir tane listeledikleri eğitim parçası dışında DOM manipülasyonu yok ve o zaman bile sadece seçim - ve evet, liste yapıyorlar document.write). XHR öğreticileri, onLoad yerine readyStateChange kullanır (IE7'den beri desteklenir). Oh ve JSON'daki işlevler için geçici çözümü? Onları daha sonra değerlendirilmek üzere sıkıştırın
John Dvorak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.