>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 21272 个阅读者 刷新本主题
 * 贴子主题:  CSS 盒子模型 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-30 21:05:10     消息  查看  搜索  好友  邮件  复制  引用

  

CSS  盒子模型

CSS 盒子模型(Box Model)

     所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

  CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。

  盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

  下面的图片说明了盒子模型(Box Model):

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
不同部分的说明:    
  • Margin(外边距) - 清除边框外的区域,外边距是透明的。
  • Border(边框) - 围绕在内边距和内容外的边框。
  • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
  • Content(内容) - 盒子的内容,显示文本和图像。
     为了正确设置元素在所有浏览器中的宽度和高度,你需要知道的盒模型是如何工作的。      

元素的宽度和高度

     点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小重要: 当您指定一个CSS元素的宽度和高度属性时,你只是设置内容区域的宽度和高度。要知道,完全大小的元素,你还必须添加填充,边框和边距。.

   下面的例子中的元素的总宽度为300px:

范例

div   {
     width:   300 px  ;
     border:   25 px   solid   green  ;
     padding:   25 px  ;
     margin:   25 px  ;
}

     让我们自己算算:

    300px (宽)

    + 50px (左 + 右填充)

    + 50px (左 + 右边框)

    + 50px (左 + 右边距)

    = 450px

  试想一下,你只有250像素的空间。让我们设置总宽度为250像素的元素:      

范例

div   {
     width:   220 px  ;
     padding:   10 px  ;
     border:   5 px   solid   gray  ;
     margin:   0  ;
}

        最终元素的总宽度计算公式是这样的:

  总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

  元素的总高度最终计算公式是这样的:

  总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距      

浏览器的兼容性问题

     一旦为页面设置了恰当的 DTD,大多数浏览器都会按照上面的图示来呈现内容。然而 IE 5 和 6 的呈现却是不正确的。根据 W3C 的规范,元素内容占据的空间是由 width 属性设置的,而内容周围的 padding 和 border 值是另外计算的。不幸的是,IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。

  虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。

  IE8 及更早IE版本不支持设置填充的宽度和边框的宽度属性。

  解决IE8及更早版本不兼容问题可以在HTML页面声明 <!DOCTYPE html>即可。







程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-04 13:09:38 重新编辑]
  Java面向对象编程-->多线程(下)
  JavaWeb开发-->自定义JSP标签(Ⅱ)
  JSP与Hibernate开发-->通过JPA API检索数据
  Java网络编程-->用Spring整合CXF发布Web服务
  精通Spring-->Vue指令
  Vue3开发-->Vue CLI脚手架工具
  Webpack 插件开发指南
  JS中==和===的区别
  Vue2.0与Vue3.0主要区别总结
  Vue中qs插件的使用
  Vue 3新特性RFC-0026异步组件的全新API
  css3中translate、transform和translation,以及动画animati...
  Node.js操纵Mongodb数据据
  20分钟带你掌握JavaScript Promise和 Async/Await
  BootStrap, React, Vue的比较
  js Worker 线程收集1~9999的之间所有质数;Worker线程交换数...
  Vue之引用第三方JS插件,CKPlayer使用
  jQuery与AJAX的整合简介
  CSS margin(外边距)
  JavaScript的比较和逻辑运算符
  JavaScript 语法大全
  更多...
 IPIP: 已设置保密
楼主      
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。