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

Я помещаю div внутри тега aс намерением, что только когда я наведу курсор на область, занятую div, я получаю курсор в виде руки.

Но у него странное поведение.

Вы можете видеть, что div имеет фиксированные размеры (красная рамка).

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

Но даже если я перемещаю мышь за пределами в div, все равно появляется курсор в виде руки. Почему?

Как я уже сказал, я в основном хочу, чтобы только область внутри красной рамки была кликабельной.

Вот код:

const AppCustomIcon = (props) => {
    return (
        <a target = "blank"

           href = {props.url}>
        <div style = {{
            height: 100,
            width: 100,
            display: "flex",
            flexDirection: "column",
            border:"1px solid red",
            alignItems: "center"
        }}>


                <IconButton
                    style = {{marginRight: 10}}
                    onClick = {props.handleClick}
                >
                    {props.icon}
                </IconButton>
                <Typography variant = {"body1"}>{props.text}</Typography>

        </div>
        </a>

    )
}
«Но даже если я перемещаю мышь за пределы div, все равно появляется курсор в виде руки. Почему?" — потому что это стиль по умолчанию для элементов a с установленным атрибутом href…? Вам нужно будет перезаписать это, если вы этого не сделаете для этой конкретной ссылки (а затем добавить его снова для div, который находится внутри).
04FS 05.06.2019 09:26

@04FS Поскольку я поставил divвнутри на a, я хотел, чтобы курсор появлялся только тогда, когда указатель мыши находится внутри области div, а не за ее пределами. я думаю вы не поняли вопрос

user11602753 05.06.2019 09:27

зачем вам div в a? просто добавьте CSS в a, сделайте так, чтобы он отображал блок

Roy.B 05.06.2019 09:33

@Roy.B Это тоже оказалось решением, спасибо. Итак, наличие div не имеет преимуществ?

user11602753 05.06.2019 09:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
312
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Якорный тег a по умолчанию display: inline. Если вы применяете стили к элементу, который содержит элементы потока или любые другие элементы, представленные в CSS как display: block, вы должны установить для себя правильный тип контейнера блока, например block или inline-block, чтобы его макет работал должным образом.

добавление display:"inline-block" к a решило эту проблему, но я не понимаю вашего объяснения, почему...

user11602753 05.06.2019 09:34

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