用CSS解决一个让人头疼的需求

  需求:下面的文字内容分别都写在一个a标签里,现在需要获取到每一行最后一个a标签的竖线,并删除

  

   我首先想到的是用CSS3新增选择器—— :nth-child()来解决,比如 :nth-child(3n)  这里的3n表示获取到所有3的倍数的元素

  更多用法参见:https://developer.mozilla.org/zh-CN/docs/Web/CSS/:nth-child   

   但这里又有一个问题,因为上面的文字内容都不是固定不变的,比如上面截图里的自考,现在是在第一排第3个,

  但如果专升本文字变多,自考就会被挤下去,变成第二排的第一个

  真是想冥思苦想也没想出个好的解决办法,心里也一直在想,不可能还用js去实现吧,难免有点小题大做

  

   后经大神赐教,巧妙的用纯css解决了这个疑难杂症,再一次感受到CSS的深奥和自己技术的不足,下面附上解决代码

  关键css代码有2个,一个是给a标签加上 margin-left: -1px; 另一个是给a标签外层div加上overflow: hidden;

<!DOCTYPE html>
<html>
      <head>
            <meta charset="utf-8" />
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <title></title>
            <style>
                  .main {
                        /* 必须加这个 */
                        overflow: hidden;
                  }
                  .test {
                        display: inline-block;
                        margin: 10px 5px 0;
                        /* 必须加这个 */
                        margin-left: -1px;
                        padding: 0 5px;
                        color: #ccc;
                        font-size: 18px;
                        border-left: 1px solid #666;
                  }
            </style>
      </head>
      <body>
            <div class="main">
                  <a href="javascript:;" class="test">test11111111</a>
                  <a href="javascript:;" class="test">test2222222</a>
                  <a href="javascript:;" class="test">test</a>
                  <a href="javascript:;" class="test">test</a>
                  <a href="javascript:;" class="test">test</a>
                  <a href="javascript:;" class="test">test</a>
                  <a href="javascript:;" class="test">test</a>
                  <a href="javascript:;" class="test">test</a>
                  <a href="javascript:;" class="test">test</a>
            </div>
      </body>
</html>

  

  

原文地址:https://www.cnblogs.com/tu-0718/p/9893258.html

时间: 2024-11-13 04:27:42

用CSS解决一个让人头疼的需求的相关文章

Effective前端1:能使用html/css解决的问题就不要使用JS

  借用Effective之名,开始写Effective系列,总结一些前端的心得. 为什么说能使用html/css解决的问题就不要使用JS呢?两个字,因为简单.简单就意味着更快的开发速度,更小的维护成本,同时往往具有更好的体验,下面介绍几个实例. 1. 导航高亮 导航高亮是一种很常见的问题,包括当前页面的导航在菜单里面高亮和hover时高亮.你可以用js控制,但是用一点CSS技巧就可以达到这个目的,不需要使用JS. 在正常态时,每个导航的默认样式为: 正常态透明度为0.5 CSS 1 2 3 n

能用HTML/CSS解决的问题就不要使用JS!

为什么说能使用html/css解决的问题就不要使用JS呢?两个字,因为简单.简单就意味着更快的开发速度,更小的维护成本,同时往往具有更好的体验,下面介绍几个实例. 1. 导航高亮 导航高亮是一种很常见的问题,包括当前页面的导航在菜单里面高亮和hover时高亮.你可以用js控制,但是用一点CSS技巧就可以达到这个目的,不需要使用JS. 在正常态时,每个导航的默认样式为: nav li{    opacity: 0.5;} 当前页面的导航透明度为1. 为了实现这个目的: 首先通过body给不同的页面

DIV+CSS解决IE6,IE7,IE8,FF兼容问题

DIV+CSS解决IE6,IE7,IE8,FF兼容问题1.IE8下兼容问题,这个最好处理,转化成IE7兼容就可以.在头部加如下一段代码,然后只要在IE7下兼容了,IE8下面也就兼容了:1. <metahttp-equivmetahttp-equiv="x-ua-compatible"content="IE=7"/> 2. 2.flaot浮动造成IE6下面双倍边距问题,这个最常见,也最好处理,!important解决,比如margin-left:10px!

mouseleave mouseout时候悬浮框不应该消失的时候消失了 css 解决办法

要实现的效果和代码思路 简单来说就是 用一个div包着喇叭和悬浮框 悬浮事件写在这个div上 鼠标悬浮到div上的时候 悬浮框出现 最终要做成鼠标从小喇叭移动到下面的框上的时候 下面框是不会消失的. 遇到的问题 遇到的问题是 当鼠标从喇叭移动到悬浮框上面的时候 鼠标移动到三角那个空隙的时候 下面的悬浮框就会消失 解决办法有的人说 mouseleave的时候用timeout判断一下,如果移到下面那个悬浮框上了(判断是否移动到悬浮框,给悬浮框写mouseentered事件),就把隐藏逻辑停掉就行了,

为何能用HTML/CSS解决的大发彩票源码下载问题就不要使用JS?

为什么大发彩票源码下载Q1446595067 论坛:haozbbs.com说能使用html/css解决的问题就不要使用JS呢?两个字,因为简单.简单就意味着更快的开发速度,更小的维护成本,同时往往具有更好的体验,下面介绍几个实例.1.导航高亮 导航高亮是一种很常见的问题,包括当前页面的导航在菜单里面高亮和hover时高亮.你可以用js控制,但是用一点CSS技巧就可以达到这个目的,不需要使用JS. 640?wx_fmt=png&wxfrom=5&wx_lazy=1 640?wx_fmt=pn

CSS解决无空格太长的字母,数字不会自动换行的问题

其实很简单,代码如下所示,注意 Style: <div class="detail_title" style="word-break: break-all;"><%=StringUtil.toHTML(title) %></div> 默认情况下,一个 DIV或者其他元素的文本,如果都是无文字分隔符,无空格,则不会自动换行,比如: <div class="detail_title" style="

工作中关于rpm的一个简单但头疼的问题

工作中关于rpm的一个简单但头疼的问题: 公司有个需要自动化更新rpm包的需求,rpm包名是:tingyun-agent-php-1.0.5-1.x86_64,本来是一个很简单的东西,一行代码就可以实现: for a in `rpm-aq|grep tingyun`;do rpm -e $a;done 但是结果是: [[email protected] scripts]# for a in`rpm -aq|grep tingyun`;do rpm -e $a;done error: packag

CSS: 解决Div float后,父Div无法高度自适应的问题

在用CSS+DIV的布局中,经常会发现,当一个DIV float之后,如果他的高度超过了其父DIV的高度时,其父DIV的高度并不会相应的进行调整.要解决这个问题(也叫做闭合(清除)浮动),我们有四种办法: 1. 额外标签法 这种方法就是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器.这种方法浏览器兼容性好,没有什么问题,缺点就是需要额外的(而且通常是无语义的)标签.我个人比较喜欢这种方法,因为它简单.实用.浏览器兼容性好,而且这种方法也是W3C推荐的方法 <div

进化:一个平庸人的互联网之路

进化:一个平庸人的互联网之路 现在互联网在现实生活中应用十分广泛,更为确切的说互联网已经融入了21世纪绝大多数平庸人的生活中.互联网已经是日常生活的重要组成部分.在互联网上能够浏览最新新闻.聊天.玩游戏.查阅资料.能够编辑站点供人訪问.能够分享源码等,更为重要的是在互联网上还能够进行广告宣传和购物.互联网给现实生活带来非常大的便利,广大网民在互联网上能够在数字知识库里寻找自己学业上.事业上的所需,从而帮助网民的工作与学习. 刚刚过去这场双十一网购狂欢中.透过行业老大阿里巴巴交出的实时"票房&qu