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负责页面动态交互,脚本等 ...
随机推荐
- vue组件间的传值方式及方法调用汇总
1.传值 a.父组件传子组件 方法一: 父页面: <myReportContent v-if="contentState==1" :paramsProps='paramsPr ...
- 解决yum命令后出现libldap-2.4.so.2: cannot open shared object file
问题: [root@lgh ~]# yum There was a problem importing one of the Python modules required to run yum. T ...
- No valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错
目录 No valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错 一.问题现象: 二.解决思 ...
- python Beautiful Soup 采集it books pdf,免费下载
http://www.allitebooks.org/ 是我见过最良心的网站,所有书籍免费下载 周末无聊,尝试采集此站所有Pdf书籍. 采用技术 python3.5 Beautiful soup 分享 ...
- Flutter——Stack组件(层叠组件)、Align组件、Positioned组件
Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局. Stack组件 常用于两个子元素. Stack ...
- Visual Studio 2017使用
常用快捷方式 Ctrl + KK插入书签 取消书签Ctrl + KP 上一个书签Ctrl + KN 下一个数千Ctrl + F3 先一个关键词Shift + F3 上一个关键词 Ctrl + KC 添 ...
- Go语言——概念
静态类型.动态类型.潜在类型 静态类型:指在变量声明中示出的那个类型.绝大多数类型都只有静态类型.唯独接口类型的变量例外,他除了拥有静态类型之外,还拥有动态类型. 动态类型:指在运行时与该变量绑定在一 ...
- 15.Vue组件中的data
1.组件中展示数据和响应事件: // 1. 组件可以有自己的 data 数据 // 2. 组件的 data 和 实例的 data 有点不一样,实例中的 data 可以为一个对象 // 3. 但是组件中 ...
- Java&Selenium 模拟鼠标方法封装
Java&Selenium 模拟鼠标方法封装 package util; import org.openqa.selenium.By; import org.openqa.selenium.W ...
- layer弹出框中icon数字参数说明
前言icon参数为0,如下代码: layer.msg(}); 运行结果如图: icon参数为1,如下图 icon参数为2,如下图: icon参数为3,如下图: icon参数为4,如下图: icon参数 ...