2012-04-17 2 views
1

У меня возникают проблемы с атрибутом textaras readonly. Я использую JQuery, чтобы установить атрибут, например:Readonly textarea и IE9 Scrollbars

$("#mytextarea").prop("readonly", true); 

В CSS:

textarea { width: 400px; height: 400px; } 
textarea[readonly] { overflow: auto; } 

HTML-:

<textarea id="mytextarea">Lorem ipsum [...] ament.</textarea> 

В Internet Explorer 9, полосы прокрутки не showned поэтому пользователи не могут читать содержимое переполнения. Поведение со всеми другими крупными браузерами правильное: поле не редактируется, но пользователи могут свободно прокручивать его.

Как это исправить?

+2

Я не знаю, какую версию jQuery вы используете, но с версии 1.6 соответствующий способ обработки свойств - ['.prop()'] (http://api.jquery.com/prop /): '$ (" # mytextarea "). prop (" readonly ", true);' –

+0

Хорошо, спасибо за советы;) –

ответ

3

От http://www.w3schools.com/cssref/pr_pos_overflow.asp

видна перепускного не обрезано. Он отображает вне поля элемента . Это по умолчанию

скрытый Переполнение обрезается, а остальная часть контента будет невидимым

прокрутки Переполнение обрезается, а свитка-бар добавляется, чтобы увидеть остальное содержание

авто Если переполнение обрезается, свиток-бар следует добавить, чтобы увидеть остальную часть наследуют контента Указывает, что Значение свойства переполнения должно быть унаследовано от родительского элемента

попробовать «прокручивать» в качестве значения перелива собственности, как это:

Изменение: overflow: auto; к overflow: scroll;

Поскольку он делает то, что вам не нужно только в IE9, и если вы хотите сохранить авто для другого браузера. Создание двух CSS файлы и использовать этот код в ваш HTML:

<!--[if IE 9]> 
    <link rel="stylesheet" type="text/css" href="ie9.css"> 
<![endif]--> 

и положить overflow: scroll; внутри ie9.css и overflow: auto; внутри обычного CSS.

EDIT: Скотт предложил, я тоже пытаюсь прочитать эту ссылку http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ ... о том, как включить несколько CSS для каждого браузера. Это хорошая идея и хороший способ уменьшить HTTP-запрос.

+0

За счет другого HttpRequest. Вы можете использовать [метод Пола Ирси] (http: // paulirish.com/2008/условные-stylesheets-vs-css-hacks-answer-none /), чтобы добавить условные классы в тег html, который позволяет вам настраивать любую версию IE, которую нужно обрабатывать, в одной таблице стилей, сохраняя этот HttpRequest. –

+0

@Scott Хорошая точка. Я отредактирую свой пост, чтобы добавить это. –

Смежные вопросы