Как поместить рамку вокруг символа в textview
Перейти к содержимому

Как поместить рамку вокруг символа в textview

  • автор:

Как сделать, чтобы текстовое поле при получении фокуса меняло цвет рамки?

Рамка вокруг текстового поля создается с помощью стилевого свойства border , которое добавляется к селектору INPUT . Фокусом же называется активность элемента, в данном случае, когда курсор находится внутри текстового поля и пользователь может вводить символы с клавиатуры.

За работу фокуса отвечает псевдокласс :focus , его необходимо добавить к селектору INPUT или TEXTAREA , как показано в примере 1.

Пример 1. Использование псевдокласса :focus

HTML5 CSS 2.1 IE Cr Op Sa Fx

    Изменение цвета рамки    

Результат примера показан на рис. 1.

Изменение стиля поля при получении фокуса

Рис. 1. Изменение стиля поля при получении фокуса

В данном примере вводится класс text , чтобы стиль сработал только для текстового поля, а не для кнопки.

Поскольку псевдокласс :focus не поддерживается браузером Internet Explorer до версии 8.0, для него можно воспользоваться скриптами. С этой целью поможет событие onfocus , которое срабатывает при получении фокуса и onblur , при его потере. Предварительно создаем два класса, они задают вид оформления обычного текстового поля и его же при получении фокуса. Далее к тегу добавляем onfocus=»this.className=’focus'» и onblur=»this.className=’text'» . Здесь focus и text это названия классов (пример 2).

Пример 2. Использование скриптов

HTML5 CSS 2.1 IE Cr Op Sa Fx

    Изменение цвета рамки    

Как добавить вокруг текста рамку определенного цвета?

Для создания рамки вокруг текста используйте стилевое свойство border , добавляя его к соответствующему селектору. Например, если для текста применяется тег

, то для него надо установить следующий стиль.

Применение свойства border к текстовому абзацу продемонстрировано в примере 1.

Пример 1. Рамка вокруг абзаца

HTML5 CSS 2.1 IE Cr Op Sa Fx

    Рамка вокруг текста p 

Нет страшнее зверя в сибирских лесах, чем разъяренный заяц-мутант. Вы видели, какие у него зубы? О, даже медведь боится этих зубов! А, как известно, медведи больше ничего не боятся.

Результат данного примера показан на рис. 1.

Вид рамки вокруг абзаца

Рис. 1. Вид рамки вокруг абзаца

Следует учитывать, что в тексте может быть несколько абзацев и вокруг каждого тогда возникнет рамка. В подобных случаях лучше воспользоваться тегом , для которого и требуется установить стиль. А текст добавить уже внутрь этого контейнера (пример 2).

Пример 2. Рамка вокруг слоя

HTML5 CSS 2.1 IE Cr Op Sa Fx

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

Из этого правила есть только одно исключение. Герой может не суетиться, тянуть время, и вообще ничего не делать, потому что на помощь придут его друзья.

Как сделать контурный текст?

Контурный текст выглядит так, будто каждую букву обвели цветной тушью. Обычно такой способ оформления применяется к заголовкам с рубленым шрифтом и крупными буквами (рис 1). Для мелкого текста, как правило, контурные буквы не используются, поскольку снижают читаемость и восприятие текста.

Вид контурного текста

Рис. 1. Вид контурного текста

Ниже рассмотрим три метода создания контурных заголовков:

  • через свойство text-stroke;
  • через свойство text-shadow;
  • с помощью SVG.

Свойство text-stroke

Для создания контурных заголовков применяется два стилевых свойства:

  • text-stroke-width — устанавливает толщину контура ( text-stroke-width: 2px );
  • text-stroke-color — задаёт цвет контура ( text-stroke-color: red ).

Вместо этих двух свойств можно написать и одно универсальное text-stroke. В качестве значения через пробел пишем толщину и цвет контура ( text-stroke: 2px red ).

Эти свойства официально не входят в спецификацию CSS и браузерами поддерживаются только с префиксом -webkit- (даже в Firefox). В примере 1 показана стилизация заголовков с помощью оранжевого контура толщиной в два пикселя.

Пример 1. Использование -webkit-text-stroke

Контурный текст

Функция Вейерштрасса

Обычный текст.

Цвет текста можно менять через привычное нам свойство color. И если это значение, как в примере, установить прозрачным, то будет отображаться только контур.

Данный метод создания контура является наиболее универсальным и поддерживается всеми современными браузерами. При этом следует учитывать, что свойство text-stroke нестандартное и не входит официально в спецификацию CSS.

Свойство text-shadow

text-shadow добавляет к тексту тень, но при определённых значениях свойства такая тень напоминает контур. Используем следующий синтаксис:

text-shadow: 0 0 2px

Толщина в два пикселя подобрана опытным путём; если установить большее значение, то контур станет выглядеть размытым. Но даже в этом случае тень слабо похожа на контур. Для усиления цвета надо повторить одни и те же параметры тени несколько раз через запятую. Четырёх раз вполне достаточно, хотя при желании можно сделать и больше. На рис. 2 показан вид контуров с разным числом теней. Первым сверху идёт текст с одной тенью, для каждого следующего текста количество теней увеличивается на единицу.

Вид контура в зависимости от тени

Рис. 2. Вид контура в зависимости от тени

В примере 2 показано создание контурного заголовка через тень.

Пример 2. Использование text-shadow

Контурный текст

Функция Вейерштрасса

Обычный текст.

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

Данный метод создаёт фиктивный контур за счёт использования тени вокруг букв, из-за чего такой контур не имеет чётких очертаний и слегка размыт. Чтобы усилить цвета приходится повторять параметры тени несколько раз. Зато свойство text-shadow работает во всех браузерах, включая устаревшие версии.

Использование SVG

SVG предлагает дополнительные возможности для оформления текста по сравнению с CSS. К тому же SVG поддерживают все браузеры, включая устаревший Internet Explorer.

Для создания контурного текста внутрь контейнера вставляем элемент и для него задаём свойство stroke-width , определяющее толщину контура, и свойство stroke , которое устанавливает цвет этого контура (пример 3).

Пример 3. Использование SVG

В браузере Opera текст отображается белым цветом с оранжевым контуром. Чтобы оставить только контур, используем свойство fill со значением none .

Использование SVG для стилизации текстовых заголовков имеет как свои плюсы, так и минусы. В частности, у нас больше возможностей по управлению видом текста, но при этом некоторые вещи из HTML, вроде автоматического переноса текста, для SVG не работают.

См. также

  • text-shadow
  • text-stroke
  • text-stroke-color
  • text-stroke-width
  • Свойства текста в CSS

Как сделать рамку вокруг EditText

введите сюда описание изображения

Как сделать желтую рамку вокруг EditText ? И как потом изменить цвет этой рамки? 🙂 Вот эта желтая рамка:

Отслеживать
8,341 4 4 золотых знака 26 26 серебряных знаков 48 48 бронзовых знаков
задан 17 окт 2015 в 19:02
user189127 user189127

что Вы подразумеваете под рамкой? > В Eclipse у меня она появлялась автоматически -среда разработки не влияет на внешний вид приложения, разница может быть из за разных таргетовых версий Android API

17 окт 2015 в 19:11
@ermak0ff, видимо стиль был другой. Фото рамки добавил в вопрос.
– user189127
17 окт 2015 в 19:17

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

как я понял Вам нужно это

Это EditText

Создаем файл EditTextStyle.xml в папке drawable

Добавляем атрибут в EditText android:background=»@drawable/EditTextStyle»

UPD:

И как потом изменить цвет этой рамки? 🙂

меняете эти строки

. . android:startColor="#C8C8C8" android:endColor="#FFFFFF" . 

UPD 2:

Как увеличить отступ синей рамки от текста? Он прилегает в плотную

для этого нужно добавить padding на EditText

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *