鼠标悬停<a>链接下<li>显示

<td>

<a> 练习一</a>

<a> 练习二</a>

<a class='kc-lx' οnmοuseοver='MM_over(this)' οnmοuseοut='MM_out(this)'>
    练习三
<div id="popup" style="display: none;">
	<ul>
		<li>
		<p οnclick="javascript:lx(-1,12,"Y",5069);">
			选择题
		</p>
		</li>
		<li>
		<p οnclick="javascript:lx(5077,12,"Y",5069);">
			案例测试题
		</p>
		</li>
	</ul>
</div>
</a>
<td>

//实现功能: 当鼠标悬停到<a> 上, 展示<a>下的所有<li>菜单, 

// children() 方法返回被选元素的所有直接子元素。
function MM_over(mmObj) 
{
    var $mmObj=$(mmObj);  
    $mmObj.css("position","relative");
    var $mSubObj= $mmObj.children().first();
   
    var $td=$mSubObj.parent().parent();
    if( $td.children().length=='3')
    {
    	$mSubObj.attr("style","left:-65px;");//若是第三个<a>,则设置其样式
    }
    $mSubObj.show();	
}
/*-----弹出框-----*/
#popup{width:130px;height:auto;background:#fff;border:1px #dddddd solid;display:none;position:absolute;left:0px;top:24px;z-index:5;filter:progid:DXImageTransform.Microsoft.Shadow(color=#909090,direction=120,strength=4);/*兼容ie*/
-moz-box-shadow: 2px 2px 10px #909090;/*兼容firefox*/
-webkit-box-shadow: 2px 2px 10px #909090;/*兼容safari或chrome*/
box-shadow:2px 2px 10px #909090;/*兼容opera或ie9*/}
#popup ul{}
#popup ul li{width:130px;height:25px;border-bottom:1px #dde4ed solid;}
#popup ul li p{font:12px/25px "宋体";color:#333333;padding:0px 4px;text-align:left;cursor:pointer;float:none}
#popup ul li p:hover{background:#ebebeb;cursor:pointer;}
   部分js方法
if(prresult.length=='1'){
							appendStr += "<a href=\"javascript:lx("+prresult[0].ID+","+ybresult[i].NSRGM+",'"+ybresult[i].SFSY+"',"+ybresult[i].CH_ID+");\" class='sy-lx'>练习</a>"; 
						}else{
							appendStr +="<a class='sy-lx' οnmοuseοver='MM_over(this)' οnmοuseοut='MM_out(this)'>练习<div id='popup'><ul>";
							for(var m=0;m<prresult.length;m++){
								appendStr +=" <li><p οnclick='javascript:lx("+prresult[m].ID+","+ybresult[i].NSRGM+",\""+ybresult[i].SFSY+"\","+ybresult[i].CH_ID+");'>"+prresult[m].LX_NAME+"</p></li>";
							}
							appendStr +="</ul></div></a>";
						}



html:<aside> <ul class="sidebar"> <div class="out"></div> <li>手机 平板 电话卡<span>></span></li> <li>电视 盒子<span>></span></li> <li>路由器 智能硬件<span>></span></li> <li>移动电源 插线板<span>></span></li> <li>耳机 音箱<span>></span></li> <li>电池 存储卡<span>></span></li> <li>保护套 后盖<span>></span></li> <li>贴膜 其他配件<span>></span></li> <li>米兔 服装<span>></span></li> <li>箱包 其他周边<span>></span></li> <div class="a"> < img src="img/phone_img.png" width="20px" height="430px"> </div> <div class="c"> <div> <a href=" ">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> </div> <div class="m"> < img src="img/phone_img01.png" width="25px" height="430px" /> </div> <div class="n"> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> <div> <a href="#">选购</a > </div> </div> </ul> </aside> css:aside{ width: 250px; height: 443px; background: #949494; position: relative; left: -460px; margin: 0 auto; } aside ul.sidebar li{ width: 190px; height: 44.3px; position: relative; padding:0 30px; line-height: 44.3px; color: #fff; } aside ul.sidebar li span{ float: right; color: #fff; margin: 10px; } aside ul.sidebar li:hover{ background: #ff6700; } aside ul.sidebar div.out{ width: 500px; height: 442px; border: 1px solid transparent; background: #00ffff; position: absolute; left: 250px; z-index: 1; display: none; } aside div.a img{ position: relative; top: -438px; left: 280px; } aside div.c div a{ position: relative; top: -889px; left: 400px; } aside div.m img{ position: relative; top: -1343px; left: 511px; } aside div.n div a{ position: relative; top: -1794px; left: 667px; }aside{ width: 250px; height: 443px; background: #949494; position: relative; left: -460px; margin: 0 auto; } aside ul.sidebar li{ width: 190px; height: 44.3px; position: relative; padding:0 30px; line-height: 44.3px; color: #fff; } aside ul.sidebar li span{ float: right; color: #fff; margin: 10px; } aside ul.sidebar li:hover{ background: #ff6700; } aside ul.sidebar div.out{ width: 500px; height: 442px; border: 1px solid transparent; background: #00ffff; position: absolute; left: 250px; z-index: 1; display: none; } aside div.a img{ position: relative; top: -438px; left: 280px; } aside div.c div a{ position: relative; top: -889px; left: 400px; } aside div.m img{ position: relative; top: -1343px; left: 511px; } aside div.n div a{ position: relative; top: -1794px; left: 667px; }怎么让文字不重叠,并移至顶部
03-09
从你提供的HTML和CSS代码来看,存在一些布局问题导致了元素重叠。为了使文字不重叠并且整齐地排列在顶部,我们需要对结构和样式做一些调整。 ### 分析现有问题: 1. **`position: relative;` 和 `top/left` 值过大**:你在`.a`, `.c`, `.m`, `.n`等div上设置了非常大的负值的`top`属性,这使得它们相对于其正常位置向上移动了很多像素,进而覆盖到了其他内容。 2. **不必要的嵌套层级**:部分标签如图片和链接放在过多层的DIV内部,增加了样式的复杂度同时也容易引发定位错误。 3. **缺少浮动清除或溢出处理**:当有浮动元素时未适当清理可能导致布局错乱。 ### 改进建议及解决方案: #### 优化后的HTML结构调整 首先简化并整理一下HTML结构,去除多余的闭合标签以及不合理的位置设置: ```html <aside> <ul class="sidebar"> <!-- 移除了无效的 div --> <li>手机 平板 电话卡<span>></span></li> <li>电视 盒子<span>></span></li> <li>路由器 智能硬件<span>></span></li> <li>移动电源 插线板<span>></span></li> <li>耳机 音箱<span>></span></li> <li>电池 存储卡<span>></span></li> <li>保护套 后盖<span>></span></li> <li>贴膜 其他配件<span>></span></li> <li>米兔 服装<span>></span></li> <li>箱包 其他周边<span>></span></li> <!-- 图片直接作为列表项的一部分展示 --> <li><img src="img/phone_img.png" alt="" style="width:20px;height:auto;"></li> <li><img src="img/phone_img01.png" alt="" style="width:25px;height:auto;"></li> <!-- 简化购买按钮区域 --> <li> <a href="#" class="buy-btn">选购</a> </li> </ul> </aside> ``` #### CSS 样式改进 然后修改相应的CSS规则,确保所有项目都正确显示且不会相互干扰: ```css /* 设置侧边栏宽度、高度 */ aside { width: 250px; background-color: #949494; } /* 清除默认内外边距 */ aside ul.sidebar, aside ul.sidebar li { margin: 0; padding: 0; } aside ul.sidebar { list-style-type: none; overflow-y: hidden; } aside ul.sidebar li { display: block; color: white; text-align: left; line-height: normal; position: relative; /* 如果需要保持原有行高 */ min-height: 44.3px; padding-left: 30px; box-sizing: border-box; } aside ul.sidebar li:hover { background-color: #ff6700; } aside ul.sidebar li > span { float: right; margin-right: 1em; } aside .buy-btn { display: inline-block; width: 100%; text-align: center; padding-top: 1rem; font-size: inherit; } ``` 通过以上改动可以解决原代码中存在的文本重叠的问题,并将各个元素合理分布于页面之中。同时移除了那些绝对定位带来的负面影响,采用更简单的盒模型来进行排版设计。 如果希望进一步美化界面或者添加交互效果(例如鼠标悬停时展开更多选项),可以根据实际需求继续完善此基础版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值