web前端——实例中学习css,javascript
最近闲暇时候在研究前端的样式和js,以前都是从w3school上看看那些选择器和DOM操作方法很少去实际做demo来研究,做的过程当中才真切感觉到纸上得来终觉浅,看得懂跟能做出东西完全两码事,尤其在定位那块,要吃透并且灵活运用,确实不容易。下面是自己练习时写的实例,感觉还挺有价值的,因为涉及的知识点还是挺全面的,新手的话好好看看,应该有不少收获。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>实践题 - 选项卡</title>
<style type="text/css">
body{
font-family: "microsoft yahei";
font-size: 18px;
color: #999;
padding:0;
margin:0;
}
.hide{
display:none;
}
#tabs {
width: 345px;
height: 300px;
margin: 25px auto; /* 注意这里的居中显示 */
}
#tabs ul {
padding-left: 50px; /* 标题整体后移 */
border-bottom: 2px solid saddlebrown;
list-style: none; /* 去除排头的点 */
height: 30px;
margin: 0;
color: black;
}
/*#tabs ul li {*/
/*display: inline-block;*/
/*width: 30%;*/
/*height: 32px;*/
/*padding-top: 12px;*/
/*border: 1px solid #aaa;*/
/*border-bottom: none;*/
/*}*/
#tabs ul li {
/* 注意这种float定位的方式与我上面直接修改为inline-block是有差别的,看上去好像一样,但在边框部分是有细微差异的,
因为浮动定位实际上已经将li从ul中剥离出来了,其不再以ul的子元素进行展示,所以这时候它的边框能覆盖父级ul的边框 */
float: left;
height: 28px; /* 注意这里li高度的设置细节,恰好与父级ul相差2px,这也正是ul的border宽度*/
line-height: 28px; /* 设置行高与字体一样大小以居中显示 */
padding: 0px 15px;
border: 1px solid #aaa;
border-bottom: none;
}
#tabs ul li.on{
border-top: 2px solid saddlebrown;
border-bottom: 2px solid #fff; /* 将选中的li的底部边框修改为白色便可覆盖ul设置的下边框,达到上下一体的效果 */
}
#tabs div {
line-height: 1.5em;
border: 1px solid #336699;
border-top: none;
text-align: center;
padding-top: 10px;
padding-bottom: 12px;
padding-right: 18px;
}
</style>
</head>
<body>
<!-- HTML页面布局 -->
<div id="tabs">
<ul>
<li class="on">客至</li>
<li>蜀相</li>
<li>黄鹤楼</li>
</ul>
<div>
舍南舍北皆春水,但见群鸥日日来。<br>
花径不曾缘客扫,蓬门今始为君开。<br>
盘飧市远无兼味,樽酒家贫只旧醅。<br>
肯与邻翁相对饮,隔篱呼取尽馀杯!<br>
</div>
<div class="hide">
丞相祠堂何处寻?锦官城外柏森森。<br>
映阶碧草自春色,隔叶黄鹂空好音。<br>
三顾频烦天下计,两朝开济老臣心。<br>
出师未捷身先死,长使英雄泪满襟!<br>
</div>
<div class="hide">
昔人已乘黄鹤去,此地空余黄鹤楼。<br>
黄鹤一去不复返,白云千载空悠悠。<br>
晴川历历汉阳树,芳草萋萋鹦鹉洲。<br>
日暮乡关何处是,烟波江上使人愁。<br>
</div>
</div> <script type="text/javascript">
var myTabs = document.getElementById("tabs");
var myDivs = myTabs.getElementsByTagName("div");
var myUl = myTabs.getElementsByTagName("ul")[0];
var myLis = myUl.getElementsByTagName("li"); for (var i = 0,len = myLis.length; i < len; i++) {
// 这里将被绑定事件的li的索引先放入其对应对象的属性中,方便后面在改变对应div的class属性的时候调用
myLis[i].index = i;
myLis[i].onclick = function () {
for (var j = 0; j < len; j++) {
myLis[j].className = "";
myDivs[j].className = "hide";
}
this.className = "on";
myDivs[this.index].className = "";
}
}
</script> </body>
</html>
web前端——实例中学习css,javascript的更多相关文章
- 文成小盆友python-num14 - web 前端基础 html ,css, JavaScript
本部分主要内容 html - 基础 css - 基础 一.html 标签 html 文档标签树如下: head 部分 Meta(metadata information) 提供有关页面的元信息,例:页 ...
- Web前端开发如何利用css样式来控制Html中的h1/h2/h3标签不换行
H1/H2/H3/H4标题标签常常使用在一个网页中唯一标题.重要栏目.重要标题等情形下. H1在一个网页中最好只使用一次,如对一个网页唯一标题使用.H2.H3.H4标签则可以在一个网页中多次出现, ...
- 新手学习WEB前端流程以及学习中常见的误区
学习web前端编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理.没有付出就没有回报,在整个学习web前端编程技术的过程中,你需要付出时间.精力.金钱.废话不 ...
- web前端全栈学习之路
web前端全栈学习之路 --- 陆续更新中 一.HTML相关 1.HTML常用标签:http://www.cnblogs.com/wyb666/p/8733699.html 2.HTML5基础: 3. ...
- web前端基础知识学习网站推介
内容:一.基础知识及学习资料1. HTML入门学习:http://www.w3school.com.cn/html/index.aspHTML5 入门学习:http://www.w3school.co ...
- WEB前端开发职业学习路线初级完整版
作者 | Jeskson 来源 | 达达前端小酒馆 下面小编专门为广大web前端开发职业者汇总了学习路线初级完整版,其实web前端开发工程师可算是高福利,高薪水的职业了,所以现在学习web前端开发的技 ...
- web前端面试试题总结---css篇
CSS 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(content).填充(padding).边界(m ...
- 网站静态化处理—web前端优化—中(12)
网站静态化处理—web前端优化—中(12) Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原 ...
- Web前端开发(基础学习+坑)
0.基本说明 0.内容为课堂所学基本知识,加自己踩过的坑 1.web基本框架:html+css+JavaScript,html为网页骨架,css为网页美化,JavaScript负责页面动态交互,脚本等 ...
随机推荐
- Xmind ZEN破解版来袭:如何去除水印
Xmind ZEN是一款十分优雅地思维导图软件,但是找不到其破解版,在导出图片时就会携带上水印. image-20190110110013642.png 当然,土豪请(点击这里关闭). image-2 ...
- 9.Redis的Java客户端Jedis
Redis的Java客户端Jedis Jedis所需jar包 commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...
- 理解JVM之对象的生命周期
1.对象的创建 1) 当虚拟机遇到一条new的指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载,解析和初始化过. 2) 在类加载检查通 ...
- ES date_histogram 聚合
如下 GET cars/index/_search { "size":0, "aggs": { "sales": { "date_ ...
- Flutter——CircleAvatar组件(圆形头像组件)
import 'package:flutter/material.dart'; import 'res/listData.dart'; void main() { runApp(MaterialApp ...
- webpack中typeScript的打包配置
2018年typescript发展的非常好,js是一门非常灵活的语言,所以一个功能,怎么写都能够写出来,但是这也会导致一个问题,不同人写js的方式不同,那么会导致同一个功能出现的代码风格会迥然不同.这 ...
- jade-mixin 代码的重用
有时候页面有好多个区块,比如列表区块,但是他们代码结构又是一模一样的怎么弄?jade天生就是节约成本,节约时间的,mixin就是让代码块可以重用的函数 mixin lession p jade s ...
- python3 基础二——基本的数据类型二
一.数字(Number) 1.Python支持三种不同的数值类型:整型(int),浮点型(float),复数(complex) 2.Python数字数据类型用于存储数值 3.数据类型是不允许改变的,这 ...
- jmeter非GUI的运行命令
jmeter 的参数 参数说明: -h 帮助 -> 打印出有用的信息并退出 -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter -t 测试文件 -> 要运行的 JM ...
- script标签中的async、defer属性
Script标签是我们常用的引用js脚本的一种方式. 撸代码的时候,我们常常只写src属性,直接忽略其他属性. 最近发现了2个可以利用的属性:async.defer. 顾名思义async就是异步,在不 ...