1. box-sizing:允许以特定的方式去定义匹配某个区域的特定元素。
content-box:在规定一个框的宽高之外给这个框加内边距和边框。
border-box:(textarea和select默认值)在规定的一个框的宽高之内给这个框加内边距和边框。
/*看个人习惯而用,但一般标签默认属性是content-box,除textarea,select*/
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
2. 美化input框
/*在IE10+浏览器中, 使用css即可隐藏input文本输入框右侧的叉号*/
input[type=text]::-ms-clear,::-ms-reveal{display:none;}
input::-ms-clear,::-ms-reveal{display:none;}
input{
/*去除点击出现轮廓颜色*/
outline: none;
-webkit-appearance: none; /*去除系统默认的样式,苹果手机上的阴影*/
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); /*点击高亮的颜色*/
/*padding已在重置样式中去除,如果没有去除,记得有padding哦*/
}
3. 美化textarea文本域
textarea{
/*别忘了文本域的box-sizing属性值是border-box;所有的边框和padding都是在你固定的宽高的基础上绘制*/
/*去除点击出现轮廓颜色*/
outline: none;
/*如果有需要,去掉右下角的可拉伸变大小的图标和功能*/
resize: none;
/*padding已在重置样式中去除,如果没有去除,记得有padding哦*/
}
4. 改变placeholder的字体颜色大小
input::-webkit-input-placeholder {
/* WebKit browsers */
font-size:14px;
color: #333;
}
input:-moz-placeholder {
/* Mozilla Firefox 4 to 18 */
font-size:14px;
color: #333;
}
input::-moz-placeholder {
/* Mozilla Firefox 19+ */
font-size:14px;
color: #333;
}
input:-ms-input-placeholder {
/* Internet Explorer 10+ */
font-size:14px;
color: #333;
}
5. 美化select
/*清除ie的默认选择框样式清除,隐藏下拉箭头*/
select::-ms-expand { display: none; }
select {
/*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/
border: solid 1px #333;
/*将默认的select选择框样式清除*/
appearance:none;
-moz-appearance:none;
-webkit-appearance:none;
/*在选择框的最右侧中间显示小箭头图片*/
background: url("小箭头图片路径") no-repeat right center transparent;
/*为下拉小箭头留出一点位置,避免被文字覆盖*/
padding-right: 14px;
/*去除点击出现轮廓颜色*/
outline: none;
}
6. 美化button按钮
button{
/*本身有2px的边框,一般的button都不需要边框*/
border: none;
/*本身有的背景色,可以用其他颜色取代*/
background: #333;
/*padding已在重置样式中去除,如果没有去除,记得有padding哦*/
}
7. 美化单选框、多选框或者是上传文件按钮
/*因为用input[type="radio"]和input[type="cheakbox"]都不能直接改变它们的样式,这个时候要用到label标签关联,然后隐藏input标签,直接给label标签样式就好了。选中label就是选中了此标签*/
<label for="sex">男</label>
<input type="radio" id="sex" value="男" />
8. 多出文字用省略号表示
/*单行文字的时候*/
white-space: nowrap; /* 强制不换行 */
overflow:hidden; /*内容超出宽度时隐藏超出部分的内容 */
text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ,需与overflow:hidden;一起使用*/
/*多行文字的时候*/
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; /* 2行 */
-webkit-box-orient: vertical;
9. 选择器-选择非第一个子元素
HTML:
<div>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
方法一:
div > span :not(:first-child) {
margin-left:10px
}
方法二:兄弟元素选择器
div > span + span {
margin-left:10px
}
HTML:
<div>
<span></span>
<p></p>
<span></span>
<span></span>
</div>
方法:
div > * :not(:first-child) {
margin-left:10px
}
10. jQuery限制字符字数的方法
$(document).ready(function(){
//限制字符个数
$(“.zxx_text_overflow”).each(function(){
var maxwidth=23;
if($(this).text().length>maxwidth){
$(this).text($(this).text().substring(0,maxwidth));
$(this).html($(this).html()+’…’);
}
});
});
11. css页面点击文字出现蓝色底色去掉方法
-moz-user-select: none; /* 火狐 */
-webkit-user-select: none; /* webkit浏览器 */
-ms-user-select: none; /* IE10 */
-khtml-user-select: none; /* 早期浏览器 */
user-select: none;
12. 在遇见图标的垂直位置很难调整的时候可以用这个属性
vertical-align: 30%;
vertical-align: middle;
13. 如何让一个div在页面中上下左右居中
div{
width:400px;
height:300px;
position:absolute;
top:50%;
left:50%;
margin:-150px 0 0 -200px;
}
14. css中设置table中的td内容自动换行,边框线合并为一条
1. 把表格的sytle的table-layout: fixed;
(就是表格固定宽度,就是表格既要自适应他外面的容器,也不要撑出去)
2. 然后设置td的word-wrap: break-word;
3. table边框线合并为一条:border-collapse: collapse;
15. css让背景居中并充满整个屏幕
body{
background: url('../img/jxs-banner.png') no-repeat;
background-size: cover;
background-attachment: fixed;
background-position: center center;
}
16. H5页面点击按钮的时候,屏幕总会闪动一下
-webkit-tap-highlight-color:rgba(0,0,0,0)
//webkit是苹果浏览器引擎,tap点击,highlight背景高亮,color颜色,颜色用数值调节。
17. 解决苹果手机上input输入框的光标高度变化问题
问题产生的原因:chrome浏览器对光标高度的设置原则为,当没有内容的时候光标的高度=input的line-height的值,当有内容时,光标从input的顶端到文字的底部。
方法1:将line-height的值设置为跟字体大小一致;如果高度达不到,用padding去撑;
方法2:对chrome不设置line-height,它会自动文字居中,对ie进行hack设置line-height的值以保证文字垂直居中;这里要注意一下,如果在reset的样式文件中有设置line-height等值,请进行line-height的重置,可以用line-height:normal。具体可以看看腾讯好莱坞页面的搜索框。
18. js
// 在js中写的返回键
onclick = 'history.go(-1)';
// 强制刷新页面
window.location.reload(true);
19. 判断用户使用的是手机还是电脑访问页面,并跳转到相应页面
<script type="text/javascript">
try{
if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
window.location.href="mindex.html";
}else{
window.location.href="cindex.html";
}
}catch(e){}
</script>
20. 判断用户使用的是苹果手机还是安卓
<script type="text/javascript">
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
alert('是否是Android:'+isAndroid);
alert('是否是iOS:'+isiOS);
</script>
21. cjs实现字数限制,超出部分省略号
// 只显示20个字
function LimitNum(txt,idName) {
var str = txt;
str = str.substr(0,20) + '...' ;
var id=document.getElementById(idName);
id.innerText=str;
}
22. jq实现点击更多展开,点击收起缩回
假设有很多个更多和收起功能需要展示在同一个页面
// 遍历所有的更多按钮
$('.more').each(function(){
$(this).click(function(){
// 当点击当前的更多按钮时,找到上N级的,或者是同级,反正是要展开的div切换类去实现展开或收回
$(this).parent().prev().toggleClass('show_more');
// 首先在每个更多按钮中加一个自定义的属性status = "true"
if($(this).attr('status') == 'true'){
// 当第一次点击当前更多的时候会展开,“更多”的按钮文本会变成“收起”文本。
$(this).html('收起 ∧');
// 在赋值给status为false
$(this).attr('status','false');
}else{
$(this).html('更多 ∨');
$(this).attr('status','true');
}
});
});
23. jquery 点击元素以外任意地方隐藏该元素的方法
$(".menu").on("click", function(e){
$("#menuBox").toggle();
$(document).on("click", function(){
$("#menuBox").hide();
});
e.stopPropagation();
});
$("#menuBox").on("click", function(e){
e.stopPropagation();
});
或
$('body').click(function(e) {
if(e.target.id != 'btn' && e.target.id != 'overlay')
if ( $('#overlay').is(':visible') ) {
$('#overlay').hide();
}
})
24. 取到页面中所有的checkbox怎么做
var doc = document,
domList = doc.getElementsByTagName('input'),
checkBoxList = [],
len = domList.length;
while (len--) {
if (domList[len].type === 'checkbox') {
checkBoxList.push(domList[len]);
}
}
25. jquery 如何选取除某个元素外的所有元素
$("div.content *").not(".keep");
// 表示content类的div下除keep类以外的所有元素;另外,注意*表示所有元素
26. 一个多处查看更多和收起的实例
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.tb{
width: 1000px;
}
table{
width: 100%;
border: 1px solid #DDD;
border-collapse: collapse;
}
table tr th{
border: 1px solid #DDD;
width: 25%;
height: 40px;
}
table tr td{
border: 1px solid #DDD;
height: 80px;
line-height: 26px;
vertical-align: middle;
}
</style>
</head>
<body>
<div class="tb">
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>备注</th>
<th>名言</th>
</tr>
<tr>
<td>zhangsan</td>
<td>14</td>
<td><span data-text="这部分内容一一一会被省略一部分哦,看不了完整了咯,这里才是完整的,哈哈哈哈哈哈哈哈">这部分内容一一一会被省略一部分哦,看不了完整了咯,这里才是完整的,哈哈哈哈哈哈哈哈</span><a href="javascript:;" class="more">查看更多</a></td>
<td>努力让自己变更好</td>
</tr>
<tr>
<td>zhangsan</td>
<td>14</td>
<td><span data-text="这部分内容二二二会被省略一部分哦,看不了完整了咯,这里才是完整的,哈哈哈哈哈哈哈哈">这部分内容二二二会被省略一部分哦,看不了完整了咯,这里才是完整的,哈哈哈哈哈哈哈哈</span><a href="javascript:;" class="more">查看更多</a></td>
<td>天道酬勤</td>
</tr>
<tr>
<td>zhangsan</td>
<td>14</td>
<td><span data-text="这部分内容三三三会被省略一部分哦,看不了完整了咯,这里才是完整的,哈哈哈哈哈哈哈哈">这部分内容三三三会被省略一部分哦,看不了完整了咯,这里才是完整的,哈哈哈哈哈哈哈哈</span><a href="javascript:;" class="more">查看更多</a></td>
<td>心如止水</td>
</tr>
</table>
</div>
<script src="./js/jquery.min.js"></script>
<script>
$(document).ready(function(){
function limit(){
$('table tr td>span').each(function(){
var maxwidth=20;
if($(this).text().length>maxwidth){
// 大于20个字的时候截取字符串并在后面加上省略号
$(this).text($(this).text().substring(0,maxwidth));
$(this).html($(this).html()+'...');
}else{
// 小于20个字的时候不出现查看更多的按钮
$(this).next('a').hide();
}
})
$('.more').click(function(){
var allWords = $(this).prev('span').attr('data-text');
var words = $(this).prev('span').text();
if($(this).text() == '查看更多'){
$(this).text('收起');
$(this).prev('span').text(allWords);
$(this).prev('span').attr('data-text',words);
}else if($(this).text() == '收起'){
$(this).text('查看更多');
$(this).prev('span').text(allWords);
$(this).prev('span').attr('data-text',words);
}
})
}
limit();
});
</script>
</body>
</html>
27. 点击按钮置顶
$(window).scroll(function(){
if ($(window).scrollTop()>100){
$("#below").fadeIn(600);
} else {
$("#below").fadeOut(600);
}
});
$("#below").click(function(){
$('body,html').animate({scrollTop:0},1000);
return false;
});
28. 禁止蒙层底部页面跟随滚动
解决思路:我们要阻止页面滚动,那么何不将其固定在视窗(即 position: fixed),这样它就无法滚动了,当蒙层关闭时再释放。 当然还有一些细节要考虑,将页面固定视窗后,内容会回头最顶端,这里我们需要记录一下,同步 top 值。
示例代码:
let bodyEl = document.body
let top = 0
function stopBodyScroll (isFixed) {
if (isFixed) {
top = window.scrollY
bodyEl.style.position = 'fixed'
bodyEl.style.top = -top + 'px'
} else {
bodyEl.style.position = ''
bodyEl.style.top = ''
window.scrollTo(0, top) // 回到原先的top
}
}
30. 为什么CheckBox明明是checked="checked"也不显示选中状态
请把$('input').attr('checked','true')
换成
$('input').prop('checked','true');
31. 点击复制按钮复制链接
$("#copyBtn").on('click',function(event){
var link = $(event.currentTarget).prev('input');
link.select();
document.execCommand('Copy');
layer.msg('复制成功,快去告诉你的小伙伴吧~');
})
32. 自动生成微信二维码
下载jquery.qrcode.min.js,引入文件
var uri = $('#copyLinkText').attr('data-weixin');
$('#wxCode').qrcode(uri);
function toUtf8(str) {
var out, i, len, c;
out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}
// 微信二维码中间加logo图,给二维码添加一个自定义的logo,会让你的二维码看上去更专业,默认的Jquery.Qrcode是不支持添加自定义Logo的,这里比较简单的实现方案就是,针对每个二维码添加一个img标签,让img在二维码区域相对居中显示即可。
<img id="qrCodeIco" src="~/images/logo.png" style="position: absolute;width: 30px; height: 30px;" />
//控制Logo图标的位置
var margin = ($("#qrCodeDiv").height() - $("#qrCodeIco").height()) / 2;
$("#qrCodeIco").css("margin", margin);
33. 分享到微博
$('.share_weibo').on('click',function(){
var weibo_url = "http://service.weibo.com/share/share.php?";
var p = {
url: uri += '?f=3',
title: desc,
/*分享标题(可选)*/
// pic: item.Cover,
/*分享图片的路径(可选)*/
searchPic: "true"
};
var s = [];
for (var i in p) {
s.push(i + '=' + encodeURIComponent(p[i] || ''));
}
weibo_url += s.join("&");
window.open(weibo_url);
});
34. 分享到QQ空间
$('.share_qzone').on('click',function(){
var qzone_url = "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?";
var p = {
url: uri += '?f=4',
showcount: '1',
/*是否显示分享总数,显示:'1',不显示:'0' */
desc: desc,
/*默认分享理由(可选)*/
summary: '分享注册送现金红包啦!快来注册吧~',
/*分享摘要(可选)*/
title: '信诚恒通新用户注册',
/*分享标题(可选)*/
site: '信诚恒通',
/*分享来源 如:腾讯网(可选)*/
// pics: item.Cover,
/*分享图片的路径(可选)*/
style: '203',
width: 98,
height: 22
};
var s = [];
for (var i in p) {
s.push(i + '=' + encodeURIComponent(p[i] || ''));
}
qzone_url += s.join("&");
window.open(qzone_url);
});
35. vue设置header头
Vue.http.headers.common['X-CSRF-TOKEN'] = document.querySelector('meta[name=csrf-token]').getAttribute('content');
36. 换行,不换行,字间距
37. 获取验证码及其验证码倒计时
JS:
//发送验证码函数
function sendsms(e) {
/*发送验证码功能*/
countdown(e); //若发送验证码成功,则调用倒计时函数
}
//倒计时函数
var time = 60;
function countdown(e) {
if (time == 0) {
//e.setAttribute('disabled',false); 对没有disbaled属性的span标签,此方法无效
e.setAttribute("onclick", "sendsms(this)");
$(".send-code").html("获取验证码");
time = 60;
} else {
//e.attr('disabled',true); 对没有disbaled属性的span标签,此方法也无效
//e.setAttribute("onclick", ''); 这样写也可以
e.removeAttribute("onclick");
$(".send-code").html(time + "秒后重新获得");
time--;
setTimeout(function () {
countdown(e)
}, 1000)
}
}
HTML:
<span class="send-code" onclick="sendsms(this);">获取验证码</span>
38. 单页面和多页面应用
39. vue怎么实现点击li,li增加一个class,其他的li去掉这个class
<ul class="list">
<li v-for="(item,index) in items" v-on:click="addClass(index)" v-bind:class="{ red:index==current}">{{item.title}}</li>
</ul>
new Vue({
el:'.list',
data:{
current:0,
items:[
{title:'item1'},
{title:'item2'},
{title:'item3'},
{title:'item4'}
]
},
methods:{
addClass:function(index){
this.current=index;
}
}
})
40. vue $refs的基本用法
<div id="app">
<input type="text" ref="input1"/>
<button @click="add">添加</button>
</div>
<script>
new Vue({
el: "#app",
methods:{
add:function(){
this.$refs.input1.value ="22"; //this.$refs.input1 减少获取dom节点的消耗
}
}
})
</script>
41. css设置滚动条样式
.test-1::-webkit-scrollbar {/*滚动条整体样式*/
width: 10px; /*高宽分别对应横竖滚动条的尺寸*/
height: 1px;
}
.test-1::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
background: #535353;
}
.test-1::-webkit-scrollbar-track {/*滚动条里面轨道*/
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
border-radius: 10px;
background: #EDEDED;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。