Как определить несколько атрибутов CSS в jQuery?

Есть ли в 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 - обязательный из-за дефиса в имени.

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
528
0
620 830
14
Перейти к ответу Данный вопрос помечен как решенный

Ответы 14

Ответ принят как подходящий

Лучше просто использовать .addClass() и .removeClass(), даже если вам нужно изменить 1 или несколько стилей. Он более удобен в обслуживании и удобочитаем.

Если у вас действительно есть желание сделать несколько свойств CSS, используйте следующее:

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

NB!
Любые свойства CSS с дефис необходимо указывать. Я разместил кавычки, чтобы никто не уточнял, и код будет на 100% функциональным.

Зачем предлагать и даже аргументировать такой нестандартный синтаксис! Просто добавьте стиль с '-', то есть font-size, и ничего не получится. Если речь идет об ограничениях на доказательство, то действителен ли и $('div').css({ width : 300, height: 40 });.

Independent 13.01.2012 14:05

@Jonas - прости, о чем ты

redsquare 13.01.2012 15:45

Если свойство CSS имеет дефис (например, переполнение текста), вам необходимо заключить это свойство в кавычки. Думаю, именно об этом говорят rlb.usa и Йонас.

dan 19.03.2012 11:44

@redsquare, не могли бы вы изменить ответ, указав, что свойства должны быть заключены в кавычки, если в них есть "-"? Это первое попадание в Google для «определения нескольких свойств css jQuery», и любой, кто его ищет, может испытать неудобства из-за этой недостающей информации. Я оказался.

Peter Berg 30.03.2013 22:47

@Accipheran извинения, готово, но вам действительно стоит использовать класс :)

redsquare 31.03.2013 00:23

Вам не хватает запятой после 'font-size': '10px'

Dustin Perolio 09.04.2013 18:12

@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.

zanetu 21.09.2013 03:14

люблю это, передай json как объект

Yene Mulatu 03.01.2014 14:13

Вы все можете спорить сколько угодно. Если вы не используете кавычки, это не сработает, независимо от того, есть ли в свойстве тире или нет. Меня не волнует, сколько скрипок вы используете, на публичных серверах не работает. Вывод: ответ правильный, но нужно использовать кавычки.

Lucian Minea 13.11.2014 16:43

использование Jquery для определения CSS означает, что они хотят изменить значения программно. Уроки - не лучший вариант.

john ktejik 08.01.2015 08:20

@johnktejik, почему бы и нет? вы можете иметь несколько классов и переключаться программно.

redsquare 08.01.2015 14:31

Это ответ, который я бы порекомендовал, за исключением случаев, когда вам нужно динамически настраивать размер, например, согласовывая высоту и ширину изображения с родительским элементом в карусели. Применимо к любым неизвестным вам размерам.

harrypujols 28.01.2015 22:06

Почему я получаю сообщение «Uncaught SyntaxError: Unexpected token» в консоли Chrome?!?

FFish 28.04.2015 22:33

Хорошая штука. Я бы сказал, что addClass не всегда работает, потому что иногда вы хотите установить свойства с помощью переменных в своем JS.

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

чтобы заставить это работать, вам нужно изменить некоторый синтаксис: $ ('# message'). css ({width: '550px', height: '300px', 'font-size': '8pt'});

Edward Tanguay 15.01.2009 18:48

эээ, спасибо всем бездельникам, которые никогда не читали документацию по jquery? числовые значения автоматически преобразуются в значения пикселей kthx.

Jimmy 16.01.2009 00:10

Да в чем тут проблема? width: 550 вполне действительно.

rfunduk 23.03.2010 04:37

Я думаю, вы также можете использовать fontSize без кавычек ... у меня вопрос ... как вы установите height и, скажем, width ... на ТО ЖЕ значение .... это будет .css({ { width, height} : 300 })?

Alex Gray 23.02.2012 19:01

@alexgray нет способа сделать это с помощью непосредственный, но вы можете установить для каждого из них одну и ту же переменную: var x = 100; $el.css({width: x, height: x});

dave mankoff 12.02.2013 19:38

Я просто UPed ya чувак! Это отлично работает. Я видел вышеупомянутый документ о методах раньше, однако они, похоже, не работают, когда тот же CSS уже был объявлен встроенным. Он заменит первое значение, но не следующее. Так что спасибо тебе!

ChrisKsag 18.08.2016 20:58

Передайте его как объект:

$(....).css({
    'property': 'value', 
    'property': 'value'
});

http://docs.jquery.com/CSS/css#properties

Объект Javascript, а не JSON.

Chris 22.04.2017 14:24

Используя простой объект, вы можете объединить строки, представляющие имена свойств с соответствующими значениями. Например, изменение цвета фона и выделение текста более жирным будет выглядеть так:

$("#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

Awais Qarni 19.09.2011 14:39

пожалуйста, попробуйте это,

$(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, чтобы сделать ваш проект более масштабируемым.

Источник: Как: добавить CSS и удалить CSS с помощью jQuery

Лучший способ - использовать переменную.

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;
}

Другие вопросы по теме