#javascript #css #tooltip
Вопрос:
Я хотел бы удалить пунктирную нижнюю границу из текста, связанного с подсказкой. Этот код используется в Qualtrics для изменения опроса для клиента. Было бы лучше отредактировать оформление текста в этом случае? Мне нужно, чтобы он был стабильным в разных браузерах. По общему признанию, я не обучен кодированию — просто самоучка, поэтому, пожалуйста, укажите контекст ваших ответов, чтобы я мог либо найти дополнительную информацию о ваших указаниях, либо проанализировать ее вместе с тем, что я уже знаю.
jQuery( function()
{
var targets = jQuery( '[rel~=tooltip]' ),
target = false,
tooltip = false,
title = false;
targets.bind( 'mouseenter', function()
{
target = jQuery( this );
tip = target.attr( 'title' );
tooltip = jQuery( '<div id="tooltip"></div>' );
if( !tip || tip == '' )
return false;
target.removeAttr( 'title' );
tooltip.css( 'opacity', 0 )
.html( tip )
.appendTo( 'body' );
var init_tooltip = function()
{
if( jQuery( window ).width() < tooltip.outerWidth() * 1.5 )
tooltip.css( 'max-width', jQuery( window ).width() / 2 );
else
tooltip.css( 'max-width', 340 );
var pos_left = target.offset().left ( target.outerWidth() / 2 ) - ( tooltip.outerWidth() / 2 ),
pos_top = target.offset().top - tooltip.outerHeight() - 20;
if( pos_left < 0 )
{
pos_left = target.offset().left target.outerWidth() / 2 - 20;
tooltip.addClass( 'left' );
}
else
tooltip.removeClass( 'left' );
if( pos_left tooltip.outerWidth() > jQuery( window ).width() )
{
pos_left = target.offset().left - tooltip.outerWidth() target.outerWidth() / 2 20;
tooltip.addClass( 'right' );
}
else
tooltip.removeClass( 'right' );
if( pos_top < 0 )
{
var pos_top = target.offset().top target.outerHeight();
tooltip.addClass( 'top' );
}
else
tooltip.removeClass( 'top' );
tooltip.css( { left: pos_left, top: pos_top } )
.animate( { top: ' =10', opacity: 1 }, 50 );
};
init_tooltip();
jQuery( window ).resize( init_tooltip );
var remove_tooltip = function()
{
tooltip.animate( { top: '-=10', opacity: 0 }, 50, function()
{
jQuery( this ).remove();
});
target.attr( 'title', tip );
};
target.bind( 'mouseleave', remove_tooltip );
tooltip.bind( 'click', remove_tooltip );
});
});
#tooltip
{
text-align: center;
color: #FFFFFF;
font-family: sans-serif;
background: #008CAE;
position: absolute;
z-index: 100;
padding: 15px;
}
#tooltip:after /* triangle decoration */
{
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid #111;
content: '';
position: absolute;
left: 50%;
bottom: -10px;
margin-left: -10px;
}
#tooltip.top:after
{
border-top-color: transparent;
border-bottom: 10px solid #111;
top: -20px;
bottom: auto;
}
#tooltip.left:after
{
left: 10px;
margin: 0;
}
#tooltip.right:after
{
right: 10px;
left: auto;
margin: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<abbr rel="tooltip" title="The curricula available for teacher use provides guidance for how to differentiate lessons, activities, and assessments; includes the principles of Universal Design for Learning; and teachers are trained in implementation of the curriculum.">General education teachers have access to a curriculum that promotes differentiated instruction for all students. </abbr>
Ответ №1:
Оформление текста похоже на то, как это сделать, либо ориентируясь на тег, либо добавляя класс и ориентируясь на него:
abbr {
text-decoration: none;
}
Возможно, при реализации этого вы также учтете соображения доступности. Обычно хорошей идеей является дать пользователям какое-либо указание, когда что-то интерактивно. Интересно, удалит ли удаление подчеркивания какие-либо признаки того, что доступна подсказка?
Комментарии:
1. Это может больше не иметь значения, но некоторые браузеры также использовали подчеркивание с помощью
border
свойства, поэтому добавлениеborder-bottom: none;
должно охватывать большинство браузеров.2. Спасибо тебе, Росс. Ваша рекомендация решила проблему, и я благодарю вас за то, что вы осветили вопросы доступности. После некоторого раздумья я добавил небольшой графический знак вопроса для каждого вопроса и указания, чтобы напомнить пользователям о опции подсказки. drive.google.com/file/d/1Iayu19YH2NjPqttHa1VA-paSohwX8wQN/…