文字两侧加横线的解决方案

文字两侧加横线的需求你遇到过吗?在参与的项目中我遇到过这种需求,总结了一下,目前分为两种:

一,文字所在的背景是纯色,单一颜色;

二,文字所在背景是花色,或者是背景图片

给你一些时间,思考一下:


脑海闪过了什么?定位,浮动,背景图片,伪元素。。。还是大脑一片空白?

条条大路通罗马,相信给你足够的时间,静静的坐在开着空调的房间里,你会得到自己的实现方法。

先看第一种,背景纯色的实现方案。

用的一个方法是用一个空的标签,来写这条横线。当然也可以用背景图,切一个中间透明,两边白条的图片。也可以使用伪元素。before after前后夹击。

在背景为图片的时候使用了伪元素这种方法,个人感觉伪元素这个东西真的是太强大了。

废话不说上代码:

HTML:

<div class="onpure_bg">

<h2 class="onpure">

<span class="onpure_title">标题在此</span>

</h2>

<span class="line"></span>

</div>

CSS:

/*纯背景实现原理代码*/

.onpure_bg{

background: #ccc;

width: 700px;

height: 400px;

margin:0 auto;

background-size: cover;

position: relative;

}

.onpure{

position: absolute;

top: 70px;

left:50%;

width: 150px;

margin-left: -75px;

margin-top: 50px;

z-index: 1

}

.onpure_title{

/*关键点:设置和背景颜色一样的颜色。*/

background:#ccc;

padding:0px 20px;

}

.line{

display: inline-block;

width: 500px;

height: 0px;

border: 2px solid #fff;

position: absolute;

top:130px;

left: 50%;

margin-left: -250px;

}

代码解析:

把标题和线条定位左右居中,上下靠上部分,用z-index将文字层级放置线条上方,在给标题使用和背景色一样的背景色。padding设置左右值撑开空隙。

It is so easy!

再来看背景为图片的实现方法,很显然,上边的方法取了个巧,利用背景色一致看不出差别。换成一张有复杂的背景图案的图片,这种方法就失效,我们借助伪元素来实现。

代码

HTML

<div class="onimg_bg">

<h2 class="onimg">

<span class="onimg_title">标题在此</span>

</h2>

</div>

CSS

/*背景图片实现原理代码*/

.onimg_bg{

background: none no-repeat;

width: 700px;

height: 400px;

margin:0 auto;

background-size: cover;

position: relative;

margin-bottom: 20px;

}

.onimg{

position: absolute;

top: 70px;

left:50%;

width: 600px;

margin-left: -300px;

text-align: center;

}

/*伪元素实现*/

.onimg_title:before{

display: inline-block;

position: relative;

top:-7px;

right: 20px;

content: "";

width: 200px;

height: 0px;

border: 2px solid #fff;

}

.onimg_title:after{

display: inline-block;

position: relative;

top:-7px;

left: 20px;

content: "";

width: 200px;

color: #fff;

height: 0px;

border: 2px solid #fff;

}

伪元素这种方法,也很简单,刚遇到的时候也是纠结了一会儿,有时候是思路的问题,想到这个方法,问题就迎刃而解了。

代码解析:

需要注意的是使用伪元素content属性必不可少,然后给伪元素块级化,就可以像设置正常的元素一样设置你想要的样式了,在这里设置了一个没有高度,宽200px的长条,通过border控制高;

也可以通过设置背景图片background: none no-repeat,代替border实现

时间: 2024-08-04 14:19:26

文字两侧加横线的解决方案的相关文章

TextView过长显示省略号, TextView文字中间加横线

1.TextView显示的内容过长时自己主动显示省略号: 省略号的位置: android:ellipsize="end"   省略号在结尾 android:ellipsize="start" 省略号在开头 android:ellipsize="middle"    省略号在中间 TextView显示的行数: android:singleline="true" android:lines="2" 在java文

文字两边加横线

<div id="login_frame"> <div class="with-line">推荐使用以下浏览器</div> </div> <style type="text/css"> /* 文字两边横线 */ #login_frame .with-line { width:462px;font-size: 16px; color: #000; margin: 0 auto; posit

Android TextView(EditView)文字底部或者中间 加横线

Android TextView(EditView)文字底部或者中间 加横线 tv = (TextView) this .findViewById(R.id. text_view ); 中间加横线 tv.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); 底部加横线: tv .getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );

每日总结 - Android TextView文字底部或者中间 加横线

tv = (TextView) this .findViewById(R.id. text_view ); 中间加横线 tv.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); 底部加横线: tv .getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); 附: TextVIew 的Html解析方法: 1 String htmlLinkText= " <a href=\\" +"

中间文字,两边横线的css3伪类的使用

效果如下: :before,:after CSS伪类是用来添加一些选择器的特殊效果. 使用了css3的伪类,即相当于是在一个div中写入文字,然后在它前后各加了一个div,然后进行位置及宽高的调节. 代码: <div>中间文字,两边横线</div> div { font: 400 20px Helvetica, Arial, sans-serif; display: flex; justify-content: center; align-items: center; } /*CS

word页码上加横线&amp;&amp;word删除单页页眉

word(2010)页码上加横线 插入——>页脚(选择年刊型)——>如图 然后拖住“竖条条”将页码拖到正中间——>点中页脚右击——>选中“表格属性”——>“边框和底纹”——>在右侧预览查看——>点击“竖条条”——>确定——>确定 word删除单页页眉 在“页面布局”中——> 分隔符——>下一页,这时会出现一个空白页,与下一页分割开来,然后在鼠标点击到下一页——>插入——>脚眉——>选中“首页不同”——>就可以删除脚眉

Android中ViewPager+Fragment懒加载问题解决方案

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878 本文出自[DylanAndroid的博客] Android中ViewPager+Fragment懒加载问题解决方案 在Android中我们经常会用到ViewPager+Fragment组合.然而,有一个很让人头疼的问题就是,我们去加载数据的时候 由于ViewPager的内部机制所限制,所以它会默认至少预加载一个.这让人很郁闷,所以,我就想到要封装一个Fragme

解决WP程序 重复打开出现 “正在加载...” 字样 解决方案

在开发winphone程序时候 我们经常遇到调试.在调试的时候 可能会重复打开 debug一下.可是有时候 经常遇到 "正在加载...."字样.而且很慢.效率很低. 测试发现 在 返回 程序的时候 条用一下App.Current.Terminate();  重复打开就没事了.各位 可以推测一下具体为啥这么搞就行... ps:没有这种情况的可忽略 protected virtual void BackKeyPress(CancelEventArgs e) {      App.Curre

在Fragment中嵌套使用viewpagerindicator切换Fragment返回后出现空白页与FragmentPagerAdapter页面预加载的解决方案

1. 在Fragment中嵌套使用viewpagerindicator切换Fragment返回后出现空白页 先上代码: 1 mAdapter = new OrderAdapter(getChildFragmentManager()); 2 ViewPager pager = (ViewPager) v.findViewById(R.id.pager); 3 pager.setAdapter(mAdapter); 4 5 TabPageIndicator indicator = (TabPageI