Подтвердить что ты не робот

CSS для изменения стиля курсора кнопки изменения размера в текстовом поле

Я заметил, что кнопка изменения размера в моей текстовой области при наведении и/или нажатии остается в виде стрелки.

Мне кажется, что это должен быть указатель.

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

resize:none;

и css, чтобы изменить курсор всего текстового поля,

cursor:pointer;

но кажется, что должен быть параметр css для управления курсором только кнопки изменения размера. Я немного оглядывался и, похоже, не могу найти свойство. Я могу придумать несколько способов сделать это в javascript или jquery, но, похоже, перебор.

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

4b9b3361

Ответ 1

Это отображается самим браузером и не является частью HTML, поэтому его нельзя создать с помощью CSS.

Ответ 2

В jQuery есть простой способ решить эту проблему.

<script type="text/javascript">
    $(function() {
        $(document).on('mousemove', 'textarea', function(e) {
            var a = $(this).offset().top + $(this).outerHeight() - 16,  //  top border of bottom-right-corner-box area
                b = $(this).offset().left + $(this).outerWidth() - 16;  //  left border of bottom-right-corner-box area
            $(this).css({
                cursor: e.pageY > a && e.pageX > b ? 'nw-resize' : ''
            });
        })
    });
</script>

См. jsFiddle

Одна строка

$(document).on('mousemove', 'textarea', function(e) { var a=$(this).offset().top+$(this).outerHeight()-16,b=$(this).offset().left+$(this).outerWidth()-16;$(this).css({cursor:e.pageY>a&&e.pageX>b?"nw-resize":""}); })

Ответ 3

Это функция браузера... для этого нет стилей. Некоторые браузеры даже не отображают углы изменения размера в текстовой области. К сожалению, это, вероятно, не может быть изменено в этот момент.

Ответ 4

Вы можете использовать CSS-свойство курсора для псевдоэлемента ": after":

#block{
  display: block;
  width:150px;
  height:100px;
  border: solid black 1px;
  background: red;
}

.resizable{
  resize: both;
  overflow:auto;
  position:relative;
}

.resizable:after{
  content:"";
  position: absolute;
  bottom: 0;
  right:0;
  display:block;
  width:8px;
  height:8px;
  cursor: nwse-resize;
  background-color: rgba(255,255,255,0.5)
}
<div id="block" class="resizable"></div>