【问题标题】:span text length of column (or li)列的跨度文本长度(或 li)
【发布时间】:2015-05-20 00:06:43
【问题描述】:

我有一个 mouseover 函数可以改变 li 元素的 span 的背景颜色,但是 background-color 的改变只会改变 span 文本的背景,而不是整个长度列。如何在不更改 li 元素的背景颜色的情况下将背景颜色扩展到列的整个长度。我不想更改 li 元素的背景颜色,因为 li 元素可能包含我不想更改的背景颜色的子 ul 和 li 元素。

JSFiddle:https://jsfiddle.net/8d965kbd/

HTML:

<li>
  <span class="text">HIGHLIGHT FULL LENGTH (DO NOT HIGHTLIGHT WITH BELOW HIGHTLIGHT)</span>
  <ul>
    <li>
        <span class="text">HIGHLIGHT FULL LENGTH (DO NOT HIGHTLIGHT WITH ABOVE HIGHTLIGHT)</span>
    </li>
  </ul>
</li>

jQuery:

$(function(){
      $(document).on({
              mouseenter: function () {
                      $(this).css('background-color', 'green');
              },
              mouseleave: function () {
                      $(this).css('background-color', 'white');
              }
      }, ".text");
 });

【问题讨论】:

    标签: javascript jquery html css mouseover


    【解决方案1】:

    可能是这样的:https://jsfiddle.net/vtoe5eqx/1/

    display:inline-block; //add it to the text class
    

    【讨论】:

    • 如果跨度小于一行,inline-block 将不起作用。
    【解决方案2】:

    您可以将display:block; 添加到跨度中。

    https://jsfiddle.net/8d965kbd/3/

    【讨论】:

      【解决方案3】:

      而不是使用&lt;span&gt; 而是使用&lt;div&gt;,原因是&lt;span&gt; 只是一个内联块元素,而&lt;div&gt; 是一个块元素。 意思是&lt;span&gt; 的宽度默认为auto,它仅基于内容的宽度,而&lt;div&gt; 将其宽度设置为100%,而不考虑内容,这就是为什么当您为@987654330 应用background-color 更改时@,它只填满它的宽度。

      更新:除了&lt;div&gt;,您还可以使用其他块元素作为替代,例如&lt;p&gt; &lt;h1&gt; ~ &lt;h6&gt;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-22
        • 1970-01-01
        • 2019-09-14
        • 2022-11-21
        相关资源
        最近更新 更多