JQuery'de birden çok CSS özniteliği nasıl tanımlanır?


504

JQuery'de, her şeyi şu şekilde sağa doğru dizmeden birden fazla CSS özniteliğini tanımlamanın herhangi bir sözdizimsel yolu var mı:

$("#message").css("width", "550px").css("height", "300px").css("font-size", "8pt");

Bunlardan 20 tanesine sahipseniz, kodunuzu okumak zorlaşır, herhangi bir çözüm?

Örneğin, jQuery API'sinden, jQuery her ikisi için de doğru değeri anlar ve döndürür

.css({ "background-color": "#ffe", "border-left": "5px solid #ccc" }) 

ve

.css({backgroundColor: "#ffe", borderLeft: "5px solid #ccc" }).

DOM gösterimi ile, özellik adlarının etrafındaki tırnak işaretlerinin isteğe bağlı olduğuna dikkat edin , ancak CSS gösterimi ile addaki kısa çizgi nedeniyle gereklidir .

Yanıtlar:


928

.addClass()1 veya daha fazlasına sahipseniz bile kullanmak daha iyidir. Daha bakımlı ve okunabilir.

Gerçekten birden fazla CSS özelliği yapma isteğiniz varsa, aşağıdakileri kullanın:

.css({
   'font-size' : '10px',
   'width' : '30px',
   'height' : '10px'
});

NB! Kısa çizgi
içeren tüm CSS özelliklerinin alıntılanması gerekir. Hiç kimse açıklığa kavuşması gerekmeyecek şekilde tırnak koydum ve kod% 100 işlevsel olacak.


28
Bu aslında yanlıştır - özelliklerin, değerlerin yanı sıra çevrelerinde de tırnaklara ihtiyacı vardır. Dave Mankoff'un cevabına bakın.
rlb.usa

16
@ rlb.usa aslında yanlış değil, yukarıdaki jsfiddle.net/ERkXP çalışır . Downvote için teşekkürler!
redsquare

9
Neden böyle standart olmayan bir sözdizimi öneriyor ve hatta tartışıyorlar! '-' ile bir stil eklemeniz yeterli font-size, başarısız oluyor. Eğer ispat limitleri ile ilgili ise, o zaman da $('div').css({ width : 300, height: 40 }); geçerlidir.
Bağımsız

26
CSS özelliği bir tire karakterine (yani metin taşması) sahipse, özelliğin etrafına tırnak işareti koymanız gerekir. Bence rlb.usa ve Jonas bundan bahsediyorlar.
dan

4
@redsquare Lütfen yanıtınıza aşağıdakileri eklemeyi düşünün. Gönderen jQuery API :For example, jQuery understands and returns the correct value for both .css({ "background-color": "#ffe", "border-left": "5px solid #ccc" }) and .css({backgroundColor: "#ffe", borderLeft: "5px solid #ccc" }). Notice that with the DOM notation, quotation marks around the property names are optional, but with CSS notation they're required due to the hyphen in the name.
zanetu


68
$('#message').css({ width: 550, height: 300, 'font-size': '8pt' });

3
bunun işe yaraması için üzerinde bazı sözdizimlerini değiştirmeniz gerekir: $ ('# message'). css ({width: '550px', height: '300px', 'font-size': '8pt'});
Edward Tanguay

16
erm, jquery belgelerini hiç okumamış olan tüm inişli çıkışlı sürücüler sayesinde? sayısal değerler otomatik olarak piksel değerlerine dönüştürülür kthx.
Jimmy

5
Evet burada sorun ne? width: 550tamamen geçerli.
rfunduk

Ben de fontSizetırnak işaretleri olmadan kullanabilirsiniz düşünüyorum ... benim sorum olsa .... nasıl ayarlarsınız height, ve widthdiyelim ki ... aynı değeri .... .... olurdu .css({ { width, height} : 300 })?
Alex Gray

5
@alexgray bunu yapmanın doğrudan bir yolu yoktur , ancak her birini aynı değişkene ayarlayabilirsiniz:var x = 100; $el.css({width: x, height: x});
dave mankoff

39

Düz bir nesne kullanarak, özellik adlarını temsil eden dizeleri karşılık gelen değerlerle eşleştirebilirsiniz. Örneğin, arka plan rengini değiştirmek ve metni daha kalın yapmak şöyle görünür:

$("#message").css({
    "background-color": "#0F0", 
    "font-weight"     : "bolder"
});

Alternatif olarak, JavaScript özellik adlarını da kullanabilirsiniz:

$("#message").css({
    backgroundColor: "rgb(128, 115, 94)",
    fontWeight     : "700"
});

Daha fazla bilgi jQuery'nin belgelerinde bulunabilir .


18

lütfen bunu dene,

$(document).ready(function(){
    $('#message').css({"color":"red","font-family":"verdana"});
})

16

Aşağıdakilerle attrbirlikte de kullanabilirsiniz style:

$('#message').attr("style", "width:550; height:300; font-size:8px" );

10

Redsquare ile aynı fikirde olmak, ancak sizin gibi iki kelimeli bir özelliğiniz varsa bunu yapmaktan bahsetmeye değer text-align:

$("#message").css({ width: '30px', height: '10px', 'text-align': 'center'});


8

Bunu dene

$(element).css({
    "propertyName1":"propertyValue1",
    "propertyName2":"propertyValue2"
})

7

Senaryo

 $(IDname).css({
    "background":"#000",
    "color":"#000"
})

Html

<div id="hello"></div>

6

Bunu Deneyebilirsiniz

$("p:first").css("background-color", "#B2E0FF").css("border", "3px solid red");

1
Bu iyi bir yaklaşım değil ahbap. Onun kullanıcı json türü göndermek daha iyi
Awais Qarni

6

Değişken kullanmanın en iyi yolu

var style1 = {
   'font-size' : '10px',
   'width' : '30px',
   'height' : '10px'
};
$("#message").css(style1);

2

birden çok css özniteliğini değiştirmek istiyorsanız nesne yapısını aşağıdaki gibi kullanmanız gerekir :

$(document).ready(function(){
   $('#message').css({
                   "background-color": "#0F0",
                   "color":"red",
                   "font-family":"verdana"
                });
});

ama biz stil çok değiştirmek istediğinizde daha da kötüleştirir , bu yüzden size önerdiğim jQuery kullanarak css değiştirmek yerine bir sınıf eklemek ve bir sınıf eklemek çok daha okunabilir.

aşağıdaki örneğe bakın:

CSS

<style>
    .custom-class{
       font-weight: bold;
       background: #f5f5f5;
       text-align: center;
       font-size: 18px;
       color:red;
    }
</style>

jQuery

$(document).ready(function(){
   $('#message').addclass('custom-class');
});

Önceki örneğe göre ikinci örneğin bir avantajı, bir onclickşeyden biraz css eklemek ve ikinci tıklamayla o css'yi kaldırmak istiyorsanız, daha sonra ikinci örnekte kullanabilirsiniz..toggleClass('custom-class')

önceki örnekte, tüm css'i daha önce ayarladığınız farklı değerlerle ayarlamanız gerekir ve bu karmaşık olacaktır, bu nedenle sınıf seçeneğini kullanmak daha iyi bir çözüm olacaktır.


0

Kullanabilirsiniz

$('selector').css({'width:'16px', 'color': 'green', 'margin': '0'});

En iyi yol $ ('selector') kullanmaktır. AddClass ('custom-class') ve

.custom-class{
width:16px,
color: green;
margin: 0;
}
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.