Есть ли в jQuery какой-либо синтаксический способ определения нескольких атрибутов CSS без выстраивания всего вправо следующим образом:
$("#message").css("width", "550px").css("height", "300px").css("font-size", "8pt");
Если у вас есть, скажем, 20 из них, ваш код станет трудночитаемым, какие-либо решения?
Например, из jQuery API jQuery понимает и возвращает правильное значение для обоих
.css({ "background-color": "#ffe", "border-left": "5px solid #ccc" })
а также
.css({backgroundColor: "#ffe", borderLeft: "5px solid #ccc" }).
Обратите внимание, что в нотации DOM имена свойств заключаются в кавычки по желанию, а в нотации CSS - обязательный из-за дефиса в имени.

Лучше просто использовать .addClass() и .removeClass(), даже если вам нужно изменить 1 или несколько стилей. Он более удобен в обслуживании и удобочитаем.
Если у вас действительно есть желание сделать несколько свойств CSS, используйте следующее:
.css({
'font-size' : '10px',
'width' : '30px',
'height' : '10px'
});
NB!
Любые свойства CSS с дефис необходимо указывать.
Я разместил кавычки, чтобы никто не уточнял, и код будет на 100% функциональным.
@Jonas - прости, о чем ты
Если свойство CSS имеет дефис (например, переполнение текста), вам необходимо заключить это свойство в кавычки. Думаю, именно об этом говорят rlb.usa и Йонас.
@redsquare, не могли бы вы изменить ответ, указав, что свойства должны быть заключены в кавычки, если в них есть "-"? Это первое попадание в Google для «определения нескольких свойств css jQuery», и любой, кто его ищет, может испытать неудобства из-за этой недостающей информации. Я оказался.
@Accipheran извинения, готово, но вам действительно стоит использовать класс :)
Вам не хватает запятой после 'font-size': '10px'
@redsquare Пожалуйста, подумайте о том, чтобы добавить к своему ответу следующее. От 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.
люблю это, передай json как объект
Вы все можете спорить сколько угодно. Если вы не используете кавычки, это не сработает, независимо от того, есть ли в свойстве тире или нет. Меня не волнует, сколько скрипок вы используете, на публичных серверах не работает. Вывод: ответ правильный, но нужно использовать кавычки.
использование Jquery для определения CSS означает, что они хотят изменить значения программно. Уроки - не лучший вариант.
@johnktejik, почему бы и нет? вы можете иметь несколько классов и переключаться программно.
Это ответ, который я бы порекомендовал, за исключением случаев, когда вам нужно динамически настраивать размер, например, согласовывая высоту и ширину изображения с родительским элементом в карусели. Применимо к любым неизвестным вам размерам.
Почему я получаю сообщение «Uncaught SyntaxError: Unexpected token» в консоли Chrome?!?
Хорошая штука. Я бы сказал, что addClass не всегда работает, потому что иногда вы хотите установить свойства с помощью переменных в своем JS.
$('#message').css({ width: 550, height: 300, 'font-size': '8pt' });
чтобы заставить это работать, вам нужно изменить некоторый синтаксис: $ ('# message'). css ({width: '550px', height: '300px', 'font-size': '8pt'});
эээ, спасибо всем бездельникам, которые никогда не читали документацию по jquery? числовые значения автоматически преобразуются в значения пикселей kthx.
Да в чем тут проблема? width: 550 вполне действительно.
Я думаю, вы также можете использовать fontSize без кавычек ... у меня вопрос ... как вы установите height и, скажем, width ... на ТО ЖЕ значение .... это будет .css({ { width, height} : 300 })?
@alexgray нет способа сделать это с помощью непосредственный, но вы можете установить для каждого из них одну и ту же переменную: var x = 100; $el.css({width: x, height: x});
Я просто UPed ya чувак! Это отлично работает. Я видел вышеупомянутый документ о методах раньше, однако они, похоже, не работают, когда тот же CSS уже был объявлен встроенным. Он заменит первое значение, но не следующее. Так что спасибо тебе!
Передайте его как объект:
$(....).css({
'property': 'value',
'property': 'value'
});
http://docs.jquery.com/CSS/css#properties
Объект Javascript, а не JSON.
Используя простой объект, вы можете объединить строки, представляющие имена свойств с соответствующими значениями. Например, изменение цвета фона и выделение текста более жирным будет выглядеть так:
$("#message").css({
"background-color": "#0F0",
"font-weight" : "bolder"
});
В качестве альтернативы вы также можете использовать имена свойств JavaScript:
$("#message").css({
backgroundColor: "rgb(128, 115, 94)",
fontWeight : "700"
});
Более подробную информацию можно найти в документация jQuery.
Согласитесь с redsquare, однако стоит упомянуть, что если у вас есть свойство из двух слов, например text-align, вы должны сделать это:
$("#message").css({ width: '30px', height: '10px', 'text-align': 'center'});
Вы можете попробовать это
$("p:first").css("background-color", "#B2E0FF").css("border", "3px solid red");
Это не лучший подход, чувак. Лучше отправить пользователю тип json
пожалуйста, попробуйте это,
$(document).ready(function(){
$('#message').css({"color":"red","font-family":"verdana"});
})
Вы также можете использовать attr вместе с style:
$('#message').attr("style", "width:550; height:300; font-size:8px" );
Попробуй это
$(element).css({
"propertyName1":"propertyValue1",
"propertyName2":"propertyValue2"
})
$("#message").css({"width" : "550px", "height" : "300px", "font-size" : "8pt"});
Кроме того, может быть лучше использовать jQuery, встроенный в addClass, чтобы сделать ваш проект более масштабируемым.
Лучший способ - использовать переменную.
var style1 = {
'font-size' : '10px',
'width' : '30px',
'height' : '10px'
};
$("#message").css(style1);
Сценарий
$(IDname).css({
"background":"#000",
"color":"#000"
})
HTML
<div id = "hello"></div>
если вы хотите изменить несколько атрибутов css, вам необходимо использовать структуру объект, как показано ниже:
$(document).ready(function(){
$('#message').css({
"background-color": "#0F0",
"color":"red",
"font-family":"verdana"
});
});
но он получает худший, когда мы хотим менять много стиля, поэтому я предлагаю вам добавить класс вместо изменения css с помощью jQuery, и добавление класса также более читабельно.
см. пример ниже:
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');
});
Одним из преимуществ последнего примера над первым является то, что если вы хотите добавить какой-то css onclick чего-либо и хотите удалить этот css при втором щелчке, тогда в последнем примере вы можете использовать .toggleClass('custom-class')
где в предыдущем примере вы должны установить все css с разными значениями, которые вы установили ранее, и это будет сложно, поэтому использование параметра класса будет лучшим решением.
Ты можешь использовать
$('selector').css({'width:'16px', 'color': 'green', 'margin': '0'});
Лучше всего использовать $ ('selector'). AddClass ('custom-class') и
.custom-class{
width:16px,
color: green;
margin: 0;
}
Зачем предлагать и даже аргументировать такой нестандартный синтаксис! Просто добавьте стиль с '-', то есть
font-size, и ничего не получится. Если речь идет об ограничениях на доказательство, то действителен ли и$('div').css({ width : 300, height: 40 });.