css实现一个写信的格式

一、目标

目标实现如下效果:

二、完成

1、分析

这个效果看起来很简单,实际上可能并不那么容易实现。

首先是全部东西都居中显示,除了“亲爱的starof”这个称呼的地方。这也是难点,也是本文要重点说的地方。

开始我尝试将“ 亲爱的starof:” 和下面那段文字分别独立成两个段落,一个居左,一个居左。结果当然是不理想的,因为“亲爱的starof”部分其实并不是真正意义上的居左,而是以下面这段文字作为参考的一个居左。现在说说我的实现方法。首先全部文字都用<p>包裹,inline-block显示,然后绝对定位。具体过程如下,各位如有不同见解或实现方式欢迎指点讨论。

2、实现

第一步,代码基础框架如下

全部文字都放在一个<p>标签内。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>demo of starof</title>
<style>
.top{
margin:0 5%;
text-align:center;
}
.top span{
color:red;
}
</style>
</head>
<body>
  <div class="top">
    <p class="first"> <span> 亲爱的starof:</span><br/>
      恭喜您获得快速升级年费资格,您仅需开通<span>4个月</span>会员,即可自动升级为尊贵的年费会员,差额部分享受<span>8折优惠</span>哦!
    </p>
  </div>
</body>
</html>

此时效果:

下图为了方便后面对比。

第二步,设在<p>的display为inline-block,实现居中。

因为p本身是个块级元素,我们下一步要以它为参照实现定位。所以需要设在display属性让它大小根据内容而定,同时实现居中。

增加下面css样式。

.top .first{
display:inline-block;
position:relative;
}

 效果如下

 看起来和上面很像,实际上已经发生了本质变化。

第三步,通过绝对定位实现目标效果。

增加下面css样式。<p>相对定位作为参照,第一个<span>绝对定位。

.top .first{...
position:relative;
}

.first span:first-child{
position:absolute;
}

此时效果如下:

 如果觉得效果不理想,可通过left,top稍微调整一下。

.first span:first-child{
position:absolute;
left:0;
top:-5px;
}

这就是我要的效果

第四步,完成其他部分

剩下的就都很简单了,完整代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>demo of starof</title>
<style>
.top{
margin:0 5%;
text-align:center;
}
.top span{
color:red;
}
.top .first{
display:inline-block;
position:relative;
}
.first span:first-child{
position:absolute;
left:0;
top:-5px;
}
.top input{
width:20%;
padding:8px 20px;
margin:5px;
background-color:#e9322a;
color:white;
font-size:18px;
border:1px solid #666;
border-radius:5px;
}
</style>
</head>
<body>
  <div class="top">
    <p class="first"> <span> 亲爱的starof:</span><br/>
      恭喜您获得快速升级年费资格,您仅需开通<span>4个月</span>会员,即可自动升级为尊贵的年费会员,差额部分享受<span>8折优惠</span>哦! </p>
    <div>
      <input type="button" value="立即升级"/>
      <p>已有<span>23919</span>人享此优惠</p>
    </div>
  </div>
</body>
</html>

 3、浏览器兼容性

IE6,IE7不完全支持display:inline-block的写法。具体是对默认是display:block的元素设置display:inline-block无效,对默认是display:inline的元素设置display:inline-block可生效。所以要兼容IE6,IE7可替换标签。

 

 

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4832947.html有问题欢迎与我讨论,共同进步。

时间: 2025-01-31 09:06:43

css实现一个写信的格式的相关文章

用CSS创建一个布局居中的页面

css|创建|页面 最近有一个读者问到,怎样用CSS创建一个居中的页面布局.该读者所追求的,是要达到这样一种效果,就如同在一个1024象素宽的页面上设计出一个800象素宽的表格.这是一种使用很广泛的页面设计方法,按照传统,它要靠嵌套表格才能达到这一效果,因此,这位读者追寻一种用CSS来达到这一效果的方法并不让人惊讶. 用CSS来创建一个居中的页面设计的基本技术相对来说较简单,不过与同类相比,也简单不了太多.让我们看一下,要将这种由来已久的基于表格的设计转变成用CSS,该怎样做. 传统的做法:居中

CSS创建一个鼠标感应换图片的按钮

  这个CSS教程将教你如何使用CSS创造一个漂亮的动态按钮 ,所谓动态,指的是默认状态和聚焦状态时背景按钮图片不一样.  这个CSS教程将教你如何使用CSS创造一个漂亮的动态按钮 ,所谓动态,指的是默认状态和聚焦状态时背景按钮图片不一样,让我们看一下这是怎么完成的:    滑动门  因为我们希望我们的按钮是灵活的,我们将要作出的背景图像,可以文本自动改变大小.对于这一点,我们就用心爱的滑动门技术;两个互补图片所创造出来的幻觉,一个默认的,一个点击时出现的.  我们的按钮,将是一个基本的标签嵌套

js和css写一个可以自动隐藏的悬浮框_javascript技巧

今天写一个小实例,用js和css写一个可以自动隐藏的悬浮框.css肯定是用来控制样式的,js用来控制器显示与隐藏的.显示与隐藏通常有两种方法实现:1,用js控制其显示属性:2,用js控制其大小. 今天要说的就是通过控制其大小来实现元素的显隐,原理:为其注册鼠标移入.移出的事件,当鼠标移出对象范围,将其宽度设为1,当鼠标再次移入该对象,将其宽度还原.很简单,我们一起看看吧! 隐藏状态:   左边那一条窄线就是隐藏以后的悬浮框. 显示状态:   当鼠标滑到左边的悬浮框上,悬浮框就又显示出来了. CS

html5-如何用HTML和CSS编写一个导航下拉菜单,要鼠标经过显示

问题描述 如何用HTML和CSS编写一个导航下拉菜单,要鼠标经过显示 如题如何用HTML和CSS编写一个导航下拉菜单,要鼠标经过显示,只要一个就行 解决方案 hover就好了,ie6-不支持,不过也不需要考虑ie6了.. <!doctype html> <style> ul.menu, ul.menu li{margin:0px;padding:0px;list-style:none;position:relative;} ul.menu li{line-height:25px}

rtec tudio 9-求大师帮助!!用matlab写一个导出ply格式文件的函数

问题描述 求大师帮助!!用matlab写一个导出ply格式文件的函数 matlab写一个导出ply格式文件的函数,使得导出的ply能被Artec Studio 9 读取并显示成三维模型

excel-vb 识别不了俩种日期格式一个是文本格式 一个是日期格式

问题描述 vb 识别不了俩种日期格式一个是文本格式 一个是日期格式 vb 识别不了俩种日期格式一个是文本格式 一个是日期格式. cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" xxx ";Extended Properties='Excel 8.0;HDR=Yes'" 语句是 MSFlexGrid1.TextMatrix(j , 3) = rs(&

excel java-两个Excel表中关键字比较 一个固定的格式输出

问题描述 两个Excel表中关键字比较 一个固定的格式输出 我想写一个小程序就是在Excel表1中关键字与另一个表2关键字相似度比较相似度最高 按照一个固定的模板输出 现在就是不知道怎么设计 大哥,大姐 们,大神们 看看怎么设计才好呢 !

php检查是否为一个合法的时间格式正则

checkdate() 函数验证一个格里高里日期. 例子  代码如下 复制代码 <?php var_dump(checkdate(12,31,2000)); var_dump(checkdate(2,29,2003)); var_dump(checkdate(2,29,2004)); ?>输出: bool(true) bool(false) bool(true) 正则日期 例1 /**  代码如下 复制代码 * 检查是否为一个合法的时间格式 * * @param string $time *

理解 CSS 布局和块级格式上下文

本文的目的是介绍一些概念来帮你增强 CSS 码力.如标题所示这篇文章主要是讲块级格式上下文BFCBlock Formatting Context.你可能没听过这个术语但只要你曾经使用 过CSS 布局你就能明白它.理解 BFC 是什么.它如何工作.如何创建一个 BFC 是非常有用的这些能帮你更好的理解 CSS 布局. 这篇文章里我会通过几个你会很熟悉的的示例解释 BFC.我还会告诉你一个新的 display 值当你理解了 BFC 后可能会很需要这个值. 目录 前言 目录 什么是 BFC BFC 是