css box-sizing以及calc()

box-sizing属性可以为三个值之一:content-box(default),border-box,padding-box。

content-box,border和padding不计算入width之内

padding-box,padding计算入width内

border-box,border和padding计算入width之内,其实就是怪异模式了~

 

ie8+浏览器支持content-box和border-box;

ff则支持全部三个值。

 

使用时:

-webkit-box-sizing: 100px; // for ios-safari, android

-moz-box-sizing:100px; //for ff

box-sizing:100px; //for other

例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
.demo{width:300px; padding:20px; background-color:#00F;}
.box{width:100%; box-sizing:border-box; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; height:50px; background-color:#F00; border:5px solid #0F0; padding:20px;}
</style>
</head>

<body>
<div class="demo">
<div class="box">dd</div>
</div>
</body>
</html>

关于calc:

width: calc(expression);

calc()的运算规则

calc()使用通用的数学运算规则,但是也提供更智能的功能:

  1. 使用“+”、“-”、“*” 和 “/”四则运算;
  2. 可以使用百分比、px、em、rem等单位;
  3. 可以混合使用各种单位进行计算;
  4. 表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;
  5. 表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。
浏览器的兼容性

浏览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各浏览器厂商的识别符,不过可惜的是,移动端的浏览器还没仅有“firefox for android 14.0”支持,其他的全军覆没。

例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>无标题文档</title>
<style>
.demo {
width: 300px;
background: #60f;
padding: 3px 0;
}
.box {
background: #f60;
height: 50px;
padding: 10px;
border: 5px solid green;
width: 90%;/*写给不支持calc()的浏览器*/
width:-moz-calc(100% - (10px + 5px) * 2);
width:-webkit-calc(100% - (10px + 5px) * 2);
width: calc(100% - (10px + 5px) * 2);
}
</style>
</head>

<body>
<div class="demo">
  <div class="box">dd</div>
</div>
</body>
</html>

 

 

转载于:https://www.cnblogs.com/luoluo8/p/5401623.html

/* CSS代码注释开始 */ /* 容器样式 */ #container { display: flex; flex-direction: row; } /* 菜单样式 */ #menu { background-color: #333; color: #fff; width: 200px; height: 500px; } #menu ul { list-style-type: none; margin: 0; padding: 0; } #menu li a { display: block; color: #fff; padding: 10px 20px; text-decoration: none; } #menu li a:hover { background-color: #555; } /* 主体内容样式 */ #main { height: 500px; /* 设定主体内容高度 */ overflow-y: scroll; /* 添加滚动条 */ max-width: 1000px; padding: 20px; background-color: #fff; box-shadow: 0 2px 4px rgba(0,0,0,.1); } /* 表单样式 */ .form-row { margin-bottom: 10px; } label { display: inline-block; width: 120px; text-align: right; margin-right: 16px; } input[type="text"], select, button[type="submit"] { width: 300px; height: 36px; border-radius: 2px; border: 1px solid #ccc; padding: 6px 12px; font-size: 14px; box-sizing: border-box; background-color: #f8f8f8; } /* 提交按钮样式 */ button[type="submit"] { background-color: #1E9FFF; color: #fff; } /* 下拉列表样式 */ main select { appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"><path d="M 5,0 10,6 H 0 Z"/></svg>'); background-repeat: no-repeat; background-position-x: calc(100% - 12px); background-position-y: center; } /* 按钮悬浮样式 */ button[type="submit"]:hover { background-color: #0C7DBE; } /* 按钮按下样式 */ button[type="submit"]:active { background-color: #0B6994; } /* 图片样式 */ img { width: 200px; height: auto; margin-left: 10px; border: none; } /* CSS代码注释结束 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值