bootstrap相关知识
-
Bootstrap排版样式页面排版Bootstrap 提供了一些常规设计好的页面排版的样式供开发者使用。1.页面主体Bootstrap 将全局 font-size 设置为 14px,line-height 行高设置为 1.428(即20px);<p>段落元素被设置等于 1/2 行高(即 10px);颜色被设置为#333。//创建包含段落突出的文本<p>Bootstrap 框架</p><p class="lead">Bootstrap 框架</p><p>Bootstrap 框架</p><p>Bootstrap 框架</p><p>Bootstrap 框架</p>2.标题//从 h1 到 h6<h1>Bootstrap 框架</h1> //36px<h2>Bootstrap 框架</h2> //30px&
-
Bootstrap排版样式页面排版Bootstrap 提供了一些常规设计好的页面排版的样式供开发者使用。1.页面主体Bootstrap 将全局 font-size 设置为 14px,line-height 行高设置为 1.428(即20px);<p>段落元素被设置等于 1/2 行高(即 10px);颜色被设置为#333。//创建包含段落突出的文本<p>Bootstrap 框架</p><p class="lead">Bootstrap 框架</p><p>Bootstrap 框架</p><p>Bootstrap 框架</p><p>Bootstrap 框架</p>2.标题//从 h1 到 h6<h1>Bootstrap 框架</h1> //36px<h2>Bootstrap 框架</h2> //30px&
-
Bootstrap教程(2)--安装Bootstrap1. 版本选择 目前已经出了Bootstrap4,但是作为初学者而言可以学习Bootstrap3,更加主流的版本选择,网上的文档、教程、资源也相对比较多。本教程选择Bootstrap3.3.7。 2. 使用方式 可以将Bootstrap下载到本地后引入使用,也可以直接使用CDN引入使用。 CDN方式的话不如下载到本地使用稳定,但是不用下载更加的方便,学习阶段可以直接使用CDN的方式。 本教程直接使用CDN方式。 3. 安装方法 由于Bootstrap依赖于jQuery,所以我们先行引入jQuery,然后引入Bootstrap相关的文件。 <html>
-
1.Bootstrap介绍1.1简介:Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。 它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。1.2特点:(1)跨设备、浏览器甚至兼容IE7、8,一般不考虑IE9以下的浏览器(2)响应式布局不仅可以支持PC端的各种分辨率的显示,还可以支持移动端屏幕响应式切换显示。(3)提供全面的组件提供大量实用的组件,包括:导航、标签、工具条、按钮等一系列组件(
bootstrap相关课程
-
玩转Bootstrap(JS插件篇) 你可以把这门课程看成是《玩转Bootstrap》的补充篇,带领大家学习怎么使用JS自由控制Bootstrap中提供的组件(插件)。
讲师:大漠 中级 127941人正在学习
bootstrap相关教程
- 3. 启动(Bootstrap)类加载器 定义:启动(Bootstrap)类加载器也称为引导类加载器,该加载器是用本地代码实现的类加载器,它所加载的类库绝大多数都是出自 %JAVA_HOME%/lib 下面的核心类库,当然还有其他少部分所需类库。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。Tips:从上述定义的描述中,我们可以看到一个特别需要关注的点:启动类加载器加载的绝对大多数是 %JAVA_HOME%/lib 下边的核心类库。这句话完完全全的体现出了启动(Bootstrap)类加载器存在的意义。对于其他少部分核心类的加载,我们在代码验证过程中来讲解。接下来,让我们通过示例代码进行下验证。示例:通过编写一个 main 函数,打印出通过启动(Bootstrap)类加载器加载的所有的类库信息,以证实启动(Bootstrap)类加载器加载的是 %JAVA_HOME%/lib 下边的核心类库。Tips:注意下 main 函数代码的第二行代码 URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs(); 这是通过 sun 公司提供的 Launcher 包获取 Bootstrap 类加载器下 ClassPath 下的所有的 URL。import java.net.URL;public class LoaderDemo { public static void main(String[] args) { System.out.println("BootstrapClassLoader 的加载路径: "); URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs(); for(URL url : urls) System.out.println(url); }}结果验证:运行 main 函数。Tips:此处运行结果所打印的类库的绝对路径为本人本机的安装路径,学习者应按照自己真实的JDK安装路径以及版本对号入座,此处仅为示例。BootstrapClassLoader 的加载路径: file:/D:/Programs/Java/jdk1.8.0_111/jre/lib/resources.jarfile:/D:/Programs/Java/jdk1.8.0_111/jre/lib/rt.jarfile:/D:/Programs/Java/jdk1.8.0_111/jre/lib/sunrsasign.jarfile:/D:/Programs/Java/jdk1.8.0_111/jre/lib/jsse.jarfile:/D:/Programs/Java/jdk1.8.0_111/jre/lib/jce.jarfile:/D:/Programs/Java/jdk1.8.0_111/jre/lib/charsets.jarfile:/D:/Programs/Java/jdk1.8.0_111/jre/lib/jfr.jarfile:/D:/Programs/Java/jdk1.8.0_111/jre/classes结果解析:我们可以看到,运行结果中的前 7 个类库(不同的JDK版本会有差异,此处我们讨论的是JDK 1.8版本),都是出自lib下的核心类库。但是对于最后一条加载信息却不是 lib 下的类库。我们仔细看下最后这条信息的加载 file:/D:/Programs/Java/jdk1.8.0_111/jre/classes。这就是前文我们所提到的其他少部分的核心类库加载,学习者可以根据自己真实的安装位置打开 /jre 文件夹,看看是否存在 /classes 路径。结果是 /classes 文件夹路径并不存在,除非我们进行特殊的参数创建才可以出现 /classes 路径。此处并非我们主要讨论的问题,我们关注的是lib文件夹下的核心类库加载,这里仅做了解即可。
- 5.3 客户端断开重连 实例://字符串解码器pipeline.addLast(new StringDecoder());//字符串编码器pipeline.addLast(new StringEncoder());//业务Handler,需要传递“bootstrap”pipeline.addLast(new ClientHandler(bootstrap));public class ClientHandler extends ChannelInboundHandlerAdapter { private Bootstrap bootstrap; ClientHandler(Bootstrap bootstrap){ this.bootstrap=bootstrap; } @Override public void channelInactive(ChannelHandlerContext ctx) throws Exception { bootstrap.connect("127.0.0.1",80).sync(); }}代码说明:连接断开时,客户端的 Handler 的 channelInactive () 会监听的到,在该方法里面实现断开重连;Handler 必须传递 bootstrap。
- 6.1 客户端启动类 public class NettyClient { public static void main(String[] args) throws InterruptedException { NioEventLoopGroup workerGroup = new NioEventLoopGroup(); Bootstrap bootstrap = new Bootstrap(); bootstrap // 1.指定线程模型 .group(workerGroup) // 2.指定 IO 类型为 NIO .channel(NioSocketChannel.class) // 3.IO 处理逻辑 .handler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) { //自定义业务 Handler ch.pipeline().addLast(new NettyClientHandler()); } }); // 4.建立连接 ChannelFuture future=bootstrap.connect("127.0.0.1", 80).sync(); }}代码说明:以上都是模板代码,需要变动的是根据不同的业务自定义对应的 Handler,并且在 initChannel () 添加逻辑处理器;connect () 方法,指定对应服务端 ip 和 port。
- 5. 小结 本节的学习,主要介绍了 Netty 客户端启动类 Bootstrap 的使用讲解,需要掌握的核心知识点如下:了解 Bootstrap 的核心步骤,分别是是①指定线程模型;②指定 IO 模型;③指定业务逻辑处理器;④连接服务器;掌握 Bootstrap 的几个核心方法的功能及用法。
- 4.1 connect() connect () 用来连接服务端,常见的运用场景主要有三点,分别是①监听连接结果;②失败重连;③断开重连。4.1.1 连接监听connect () 方法返回的是 ChannelFuture,也就是说不需要等待连接成功或失败才往下执行代码,后期可以监听连接结果。实例://1.连接Netty服务端ChannelFuture future=bootstrap.connect("127.0.0.1",80);//2.监听连接结果future.addListener(future -> { if (future.isSuccess()) { System.out.println("连接成功!"); } else { System.err.println("连接失败!"); }});总结,这种模式的好处是,连接是异步的,无需等待连接响应代码才会往下执行。4.1.2 失败重连在网络情况差的情况下,客户端第一次连接可能会连接失败,这个时候我们可能会尝试重新连接,具体实现如下:方案一: 通过 ChannelFuture 的返回状态来监听连接是否成功。实例:private static void connect(Bootstrap bootstrap, String host, int port) { bootstrap.connect(host, port).addListener(future -> { if (future.isSuccess()) { System.out.println("连接成功!"); } else { System.err.println("连接失败,开始重连"); //递归调用连接方法 connect(bootstrap, host, port); } });}方案二: 避免短时间内频繁的请求连接,可以使用定时线程池来每隔 n 秒重连一次。实例:private static void connect(Bootstrap bootstrap, String host, int port) { bootstrap.connect(host, port).addListener(future -> { if (future.isSuccess()) { System.out.println("连接成功!"); } else { //获取EventLoopGroup EventLoopGroup thread=bootstrap.config().group(); //每隔5秒钟重连一次 thread.schedule(new Runnable() { public void run() { connect(bootstrap, host, port) } }, 5, TimeUnit.SECONDS); } });}代码说明:bootstrap.config().group() 获取的 EventLoopGroup,它是一个线程池,线程池里面有一个叫定时线程池。
- 3. 案例 1:加载 /jre/lib/resources.jar 通过上节课程的学习,我们能够知道 /jre/lib/resources.jar 是需要被启动(BootStrap)类加载器加载的核心类库,那么我们来看看它的加载流程图。加载流程图:根据双亲委派模型,我们来看下 resources.jar 的完整加载过程。从上图中我们可以看到,对于核心类库 resources.jar 的加载,分为以下 4 步:步骤 1:resources.jar 会先通过自定义类加载器(前提是我们实现了自定义类加载器),自定义类加载器不会做处理,直接向上委托给系统(System Application)类加载器;步骤 2:系统(System Application)类加载器接到委托后,也不做任何处理,直接向上委托给扩展(Extension)类加载器;步骤 3:扩展(Extension)类加载器接到委托后,也不做任何处理,直接向上委托给启动(Bootstrap)类加载器;步骤 4:启动(Bootstrap)类加载器接到委托后,发现 resources.jar 是自己负责加载的核心类库,于是进行加载,最后成功加载了 resources.jar。
bootstrap相关搜索
-
back
backbone
background
background attachment
background color
background image
background position
background repeat
backgroundcolor
backgroundimage
background属性
badge
bash
basics
basis
bat
bdo
bean
before
begintransaction