Bootstarp学习(十九)列表组

列表组

列表组是Bootstrap框架新增的一个组件,可以用来制作列表清单、垂直导航等效果,也可以配合其他的组件制作出更漂亮的组件。由于其在Bootstrap是一个独立的组件,所以也对应有自己独立源码:

?  LESS版本:对应的源码文件 list-group.less

?   Sass版本:对应的源码文件是 _list-group.scss

?   编译出的Bootstrap版本:对应的源码bootstrap.css文件第4820行~第4994行

下面几个小节会对这几种列表组详细讲解,大家不要心急噢!

<h3>基础列表组</h3>
<ul class="list-group">
    <li class="list-group-item">揭开CSS3的面纱</li>
    <li class="list-group-item">CSS3选择器</li>
	<li class="list-group-item">CSS3边框</li>
	<li class="list-group-item">CSS3背景</li>
	<li class="list-group-item">CSS3文本</li>
</ul>
<h3>带徽章的列表组</h3>
<ul class="list-group">
    <li class="list-group-item">
    	<span class="badge">13</span>揭开CSS3的面
	</li>
	<li class="list-group-item">
		<span class="badge">456</span>CSS3选择器
	</li>
	<li class="list-group-item">
		<span class="badge">892</span>CSS3边框
	</li>
	<li class="list-group-item">
		<span class="badge">90</span>CSS3背景
	</li>
	<li class="list-group-item">
		<span class="badge">1290</span>CSS3文本
	</li>
</ul>
<h3>带链接的列表组</h3>
<ul class="list-group">
    <li class="list-group-item">
    	<a href="##">揭开CSS3的面</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3选择器</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3边框</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3背景</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3文本</a>
	</li>
</ul>
<h3>自定义列表组</h3>
<div class="list-group">
    <a href="##" class="list-group-item">
    	<h4 class="list-group-item-heading">图解CSS3</h4>
		<p class="list-group-item-text">详细讲解了选择器、边框、背景、文本、颜色、盒模型、伸缩布局盒模型、多列布局、渐变、过渡、动画、媒体、响应Web设计、Web字体等主题下涵盖的所有CSS3新特性...</p>
	</a>
	<a href="##" class="list-group-item">
		<h4 class="list-group-item-heading">Sass中国</h4>
		<p class="list-group-item-text">致力于为中国开发者提供最全面,最具影响力,最前沿的Sass相关技术与教程...</p>
	</a>
</div>
<h3>组合列表项的状态</h3>
<div class="list-group">
    <a href="##" class="list-group-item active"><span class="badge">5902</span>图解CSS3</a>
    <a href="##" class="list-group-item"><span class="badge">15902</span>W3cplus</a>
	<a href="##" class="list-group-item"><span class="badge">59020</span>慕课网</a>
	<a href="##" class="list-group-item disabled"><span class="badge">0</span>Sass中国</a>
</div>
<h3>多彩列表组</h3>
<div class="list-group">
    <a href="##" class="list-group-item active"><span class="badge">5902</span>图解CSS3</a>
    <a href="##" class="list-group-item list-group-item-success"><span class="badge">15902</span>W3cplus</a>
	<a href="##" class="list-group-item list-group-item-info"><span class="badge">59020</span>慕课网</a>
	<a href="##" class="list-group-item list-group-item-warning"><span class="badge">0</span>Sass中国</a>
	<a href="##" class="list-group-item list-group-item-danger"><span class="badge">10</span>Mobile教程</a>
</div>

列表组--基础列表组

基础列表组,看上去就是去掉了列表符号的列表项,并且配上一些特定的样式。在Bootstrap框架中的基础列表组主要包括两个部分:

?  list-group:列表组容器,常用的是ul元素,当然也可以是ol或者div元素

?  list-group-item:列表项,常用的是li元素,当然也可以是div元素

来看一个简单的示例:

<ul class="list-group">
    <li class="list-group-item">揭开CSS3的面纱</li>
    <li class="list-group-item">CSS3选择器</li>
    <li class="list-group-item">CSS3边框</li>
    <li class="list-group-item">CSS3背景</li>
    <li class="list-group-item">CSS3文本</li>
</ul>

运行效果如下:

原理分析:

对于基础列表组并没有做过多的样式设置,主要设置了其间距,边框和圆角等:

/*bootstrap.css文件第4820行~第4840行*/
.list-group {
  padding-left: 0;
  margin-bottom: 20px;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}
<ul class="list-group">
    <li class="list-group-item">揭开CSS3的面纱</li>
	<li class="list-group-item">CSS3选择器</li>
	<li class="list-group-item">CSS3边框</li>
	<li class="list-group-item">CSS3背景</li>
	<li class="list-group-item">CSS3文本</li>
</ul>

列表组--带徽章的列表组

带徽章的列表组其实就是将Bootstrap框架中的徽章组件和基础列表组结合在一起的一个效果。具体做法很简单,只需要在“list-group-item”中添加徽章组件“badge”:

<ul class="list-group">
    <li class="list-group-item">
        <span class="badge">13</span>揭开CSS3的面
    </li>
    <li class="list-group-item">
        <span class="badge">456</span>CSS3选择器
    </li>
    <li class="list-group-item">
        <span class="badge">892</span>CSS3边框
    </li>
    <li class="list-group-item">
        <span class="badge">90</span>CSS3背景
    </li>
    <li class="list-group-item">
        <span class="badge">1290</span>CSS3文本
    </li>
</ul>

运行效果如下:

实现原理:

实现效果非常简单,就是给徽章设置了一个右浮动,当然如果有两个徽章同时在一个列表项中出现时,还设置了他们之间的距离:

/*bootstrap.css文件第4841行~第4846行*/
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
<ul class="list-group">
    <li class="list-group-item">
		<span class="badge">13</span>揭开CSS3的面
	</li>
	<li class="list-group-item">
		<span class="badge">456</span>CSS3选择器
	</li>
	<li class="list-group-item">
		<span class="badge">892</span>CSS3边框
	</li>
	<li class="list-group-item">
		<span class="badge">90</span>CSS3背景
	</li>
	<li class="list-group-item">
		<span class="badge">1290</span>CSS3文本
	</li>
</ul>

列表组--带链接的列表组

带链接的列表组,其实就是每个列表项都具有链接效果。大家可能最初想到的就是在基础列表组的基础上,给列表项的文本添加链接:

<ul class="list-group">
    <li class="list-group-item">
        <a href="##">揭开CSS3的面</a>
    </li>
    <li class="list-group-item">
        <a href="##">CSS3选择器</a>
    </li>
    ...
</ul>

运行效果如下:

这样做有一个不足之处,就是链接的点击区域只在文本上有效:

但很多时候,都希望在列表项的任何区域都具备可点击。这个时候就需要在链接标签上增加额外的样式:“display:block”;

虽然这样能解决问题,达到需求。但在Bootstrap框架中,还是采用了另一种实现方式。就是将ul.list-group使用div.list-group来替换,而li.list-group-item直接用a.list-group-item来替换。这样就可以达到需要的效果:

<div class="list-group">
    <a href="##" class="list-group-item">图解CSS3</a>
    <a href="##" class="list-group-item"><span class="badge">220</span>Sass教程</a>
    <a href="##" class="list-group-item">玩转Bootstrap</a>
</div>

运行效果如下:

原理实现:

如果使用a.list-group-item时,在样式需要做一定的处理,比如说去文本下划线,增加悬浮效果等:

/*bootstrap.css文件第4847行~第4858行*/
a.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
a.list-group-item:focus {
  color: #555;
  text-decoration: none;
  background-color: #f5f5f5;
}
<h3>带链接的列表组1</h3>
<ul class="list-group">
    <li class="list-group-item">
		<a href="##">揭开CSS3的面</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3选择器</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3边框</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3背景</a>
	</li>
	<li class="list-group-item">
		<a href="##">CSS3文本</a>
	</li>
</ul>
<h3>带链接的列表组2</h3>
<div class="list-group">
	<a href="##" class="list-group-item">图解CSS3</a>
	<a href="##" class="list-group-item"><span class="badge">220</span>Sass教程</a>
	<a href="##" class="list-group-item">玩转Bootstrap</a>
</div>

列表组--自定义列表组

Bootstrap框加在链接列表组的基础上新增了两个样式:

?  list-group-item-heading:用来定义列表项头部样式

?  list-group-item-text:用来定义列表项主要内容

这两个样式最大的作用就是用来帮助开发者可以自定义列表项里的内容,如下面的示例:

<div class="list-group">
    <a href="##" class="list-group-item">
        <h4 class="list-group-item-heading">图解CSS3</h4>
        <p class="list-group-item-text">...</p>
    </a>
    <a href="##" class="list-group-item">
        <h4 class="list-group-item-heading">Sass中国</h4>
        <p class="list-group-item-text">...</p>
    </a>
</div>

运行效果如下:

原理实现:

‘这两个样式主要控制不同状态下的文本颜色:

/*bootstrap.css文件第4850行~第4852行*/
a.list-group-item .list-group-item-heading {
  color: #333;
}
/*bootstrap文件第4865行~第4874行*/
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777;
}
/*bootstrap.css文件第4883行~第4898行*/
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #e1edf7;
}
/*bootstrap.css文件第4987行~第4994行*/
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
<div class="list-group">
    <a href="##" class="list-group-item">
		<h4 class="list-group-item-heading">图解CSS3</h4>
		<p class="list-group-item-text">详细讲解了选择器、边框、背景、文本、颜色、盒模型、伸缩布局盒模型、多列布局、渐变、过渡、动画、媒体、响应Web设计、Web字体等主题下涵盖的所有CSS3新特性...</p>
	</a>
	<a href="##" class="list-group-item">
		<h4 class="list-group-item-heading">Sass中国</h4>
		<p class="list-group-item-text">致力于为中国开发者提供最全面,最具影响力,最前沿的Sass相关技术与教程...</p>
	</a>
</div>

列表组--列表项的状态设置

Bootstrap框架也给组合列表项提供了状态效果,特别是链接列表组。比如常见状态和禁用状态等。实现方法和前面介绍的组件类似,在列表组中只需要在对应的列表项中添加类名:

?  active:表示当前状态

?  disabled:表示禁用状态

来看个示例:

<div class="list-group">
    <a href="##" class="list-group-item active"><span class="badge">5902</span>图解CSS3</a>
    <a href="##" class="list-group-item"><span class="badge">15902</span>W3cplus</a>
    <a href="##" class="list-group-item"><span class="badge">59020</span>慕课网</a>
    <a href="##" class="list-group-item disabled"><span class="badge">0</span>Sass中国</a>
</div>

运行效果如下:

原理实现:

在样式上主要对列表项的背景色和文本做了样式设置:

/*bootstrap.css文件第4859行~第4864行*/
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  color: #777;
  background-color: #eee;
}
/*bootstrap.css文件第4875行~第4882行*/
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #428bca;
  border-color: #428bca;
}
<div class="list-group">
    <a href="##" class="list-group-item active"><span class="badge">5902</span>图解CSS3</a>
	<a href="##" class="list-group-item"><span class="badge">15902</span>W3cplus</a>
	<a href="##" class="list-group-item"><span class="badge">59020</span>慕课网</a>
	<a href="##" class="list-group-item disabled"><span class="badge">0</span>Sass中国</a>
</div>

列表组--多彩列表组

列表组组件和警告组件一样,Bootstrap为不同的状态提供了不同的背景颜色和文本色,可以使用这几个类名定义不同背景色的列表项。

?  list-group-item-success:成功,背景色绿色

?  list-group-item-info:信息,背景色蓝色

?  list-group-item-warning:警告,背景色为黄色

?  list-group-item-danger:错误,背景色为红色

如果你想给列表项添加什么背景色,只需要在“list-group-item”基础上增加对应的类名:

<div class="list-group">
    <a href="##" class="list-group-item active"><span class="badge">5902</span>图解CSS3</a>
    <a href="##" class="list-group-item list-group-item-success"><span class="badge">15902</span>W3cplus</a>
    <a href="##" class="list-group-item list-group-item-info"><span class="badge">59020</span>慕课网</a>
    <a href="##" class="list-group-item list-group-item-warning"><span class="badge">0</span>Sass中国</a>
    <a href="##" class="list-group-item list-group-item-danger"><span class="badge">10</span>Mobile教程</a>
</div>

运行效果如下:

原理实现:

同样的,这几个类名仅修改了背景色和文本色,对应的源码为:boostrap.css文件第4899行~第4986行:

.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
a.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
a.list-group-item-success.active:hover,
a.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}

由于篇幅问题,其它状态样式代码请查看源码文件。

<div class="list-group">
    <a href="##" class="list-group-item active"><span class="badge">5902</span>图解CSS3</a>
	<a href="##" class="list-group-item list-group-item-success"><span class="badge">15902</span>W3cplus</a>
	<a href="##" class="list-group-item list-group-item-info"><span class="badge">59020</span>慕课网</a>
	<a href="##" class="list-group-item list-group-item-warning"><span class="badge">0</span>Sass中国</a>
	<a href="##" class="list-group-item list-group-item-danger"><span class="badge">10</span>Mobile教程</a>
</div>

时间: 2024-10-10 12:36:08

Bootstarp学习(十九)列表组的相关文章

Bootstrap &lt;基础二十八&gt;列表组

列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 class .list-group-item. 下面的实例演示了这点: <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 基本的列表组</title> <link href="/boo

bootstrap学习笔记 Bootstrap 列表组

本文将介绍列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素ul 添加class list-group 向li添加class list-group-item 下面的示例演示了这点: HTML <ul class="list-group"> <li class="list-group-item">免费注册域名</li> <li class="list-group-item

CSS基础学习十九:CSS布局之图文混排,图像签名,多图拼接和图片特效

学习了CSS布局的定位和浮动,我们可以简单地做出很多排版和内容拼接.今天就来做几个简单的实例展示现在 流行的DIV+CSS布局的方便好用之处.顺便也说一下CSS3新增的样式属性box-shadow和属性transform. 一图文混排 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

android学习十九(WebView的用法)

android提供了一个WebView控件,借助它我们就可以在自己的应用程序中嵌入一个浏览器,从而轻松的展示各种各样的网页.下面来学习下简单的用法.新建一个WebViewTest项目,然后修改activity_main.xml中的代码,如下所示: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/

Bootstarp学习(九)按钮扩展

按钮(按钮组) 单个按钮在Web页面中的运用有时候并不能满足我们的业务需求,常常会看到将多个按钮组合在一起使用,比如富文本编辑器里的一组小图标按钮等.那么在这一节中,我们主要向大家介绍Bootstrap框架为大家提供的按钮组组件. 源码查询: 按钮组也是一个独立的组件,所以可以找到对应的源码文件: ?  LESS版本:对应的源文件为buttons.less ?  Sass版本:对应的源文件为_buttons.scss ?  CSS版本:对应bootstrap.css文件第3131行-第3291行

Spring学习(十九)----- Spring与WEB容器整合

首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息.我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在

java核心学习(十九) javaNIO框架---文件锁

在上一节提到的FileChannel中提供了lock()/tryLock()方法可以获得文件锁FileLock对象,从而锁定文件,这里的文件锁是进程级别的锁,而非线程锁. lock()方法是阻塞试的,当调用该方法且无法得到文件锁,程序将一直阻塞. tryLock()方法是非阻塞式的加锁方法,如果获得了文件锁,则该方法返回该文件锁,否则将返回null. 文件锁分为共享锁和排他锁,当lock/tryLock方法的第三个参数为true时表明该锁是共享锁,共享锁允许多个进城来读取该文件,但阻止其他进程获

Android学习十九:ContentProvider初步

一.Content Provider基本概念 1.ContentProvider为存储和获取数据提供了统一的接口.ContentProvide对数据进行封装.不用关心数据存储的细节.使用表的形式来组织数据. 2.使用ContentProvider能够在不同的应用程序之间共享数据. 3.Android为常见的一些数据提供了默认的ContentProvider(包含音频.视频.图片和通讯录等). ContentProvider所提供的函数: query(),insert(),update(),del

学习十九

五周第一次课(3月5日)7.1 安装软件包的三种方法7.2 rpm包介绍7.3 rpm工具用法7.4 yum工具用法7.5yum搭建本地仓库 "/*/vim"(视频中ppt小错误: gpcheck改为gpgcheck,yum cean 改为 yum clean)扩展 yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml 搭建局域网yum源 http://ask.apelearn.com/

spring学习十九 常用注解

1. @Component 创建类对象,相当于配置<bean/>2. @Service 与@Component 功能相同. 2.1 写在 ServiceImpl 类上.3. @Repository 与@Component 功能相同. 3.1 写在数据访问层类上.4. @Controller 与@Component 功能相同. 4.1 写在控制器类上.5. @Resource(不需要写对象的 get/set) 5.1 java 中的注解 5.2 默认按照 byName 注入,如果没有名称对象,按