文档章节

Css3媒体查询使用

透笔度
 透笔度
发布于 2016/02/17 10:44
字数 2567
阅读 153
收藏 2

css3媒体查询技术的出现,在多设备支持上为我们提供了解决方案。

媒体查询的使用方法:

 @media screen and (max-width: 480px) {
  .col-xs-1{width: 8.333333333333332%; float:left;}
  .col-xs-2{ width: 16.666666666666664%; float:left;}
  .col-xs-3{ width: 25%; float:left;}

 }

在设备窗口宽度小于480时,下面的样式会被采用,不满足这个查询设置,下面定义的css是无效的,html根本就不会识别到。

简单理解就是,如果当前宽度是1000,那么就是div上有类名.col-xs-1,div还是只是简单块元素(不会浮动和宽为百分比),查询的设置是不起作用的。

充分利用媒体查询,实现多设备支持的框架当前最热门就是bootstrap了,我们可以学习和使用它进行开发。

下面是我自己利用媒体查询写的实例页面,都是常用css布局方式配合了媒体查询,多的就不做解释了,一句话就是写法都是css里面,看看就能懂:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>media/媒体查询/简易UI</title>
    <!--设备设置-->
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <!--渲染ie内核-->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <style>
 /*========================全局样式============================*/
 *{ margin:0; padding:0;}
 html{height:100%;}
 body{height:100%; font-size:16px; font-family:"微软雅黑";}
 a{ text-decoration:none;}
 img{ border:none;}
 ul{ list-style:none;}
    /*========================预定义样式==========================*/ 
 /*通用*/
 .left{float:left;}
 .right{float:right;}
 .clear{clear:both;}
 .clearfix:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;}
 .clearfix{ zoom:1;}
 /*12列布局*/
 .row:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;}
 @media screen and (max-width: 480px) {
  .col-xs-1{width: 8.333333333333332%; float:left;}
  .col-xs-2{ width: 16.666666666666664%; float:left;}
  .col-xs-3{ width: 25%; float:left;}
  .col-xs-4{ width: 33.33333333333333%; float:left;}
  .col-xs-5{width: 41.66666666666667%; float:left;}
  .col-xs-6{width: 50%; float:left;}
  .col-xs-7{ width: 58.333333333333336%; float:left;}
  .col-xs-8{width: 66.66666666666666%; float:left;}
  .col-xs-9{width: 75%; float:left;}
  .col-xs-10{width: 83.33333333333334%; float:left;}
  .col-xs-11{ width: 91.66666666666666%; float:left;}
  .col-xs-12{ width:100%; float:left;}
  .col-xs-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;}
  .col-xs-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;}
  .col-xs-mar-3{margin-left:25%; margin-right:25%;}
  .col-xs-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;}
  .col-xs-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;}
  .col-xs-mar-6{margin-left:50%; margin-right:50%;}
  .col-xs-mar-7{ margin-left:58.333333333333336%; margin-right:58.333333333333336%;}
  .col-xs-mar-8{ margin-left:66.66666666666666%; margin-right:66.66666666666666%;}
  .col-xs-mar-9{margin-left:75%; margin-right:75%;}
  .col-xs-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;}
  .col-xs-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;}
 }
 @media screen and (min-width: 481px) and (max-width: 768px) {
  .col-sm-1{ width: 8.333333333333332%; float:left;}
  .col-sm-2{ width:16.666666666666664%; float:left;}
  .col-sm-3{ width:25%; float:left;}
  .col-sm-4{ width:33.33333333333333%; float:left;}
  .col-sm-5{ width:41.66666666666667%; float:left;}
  .col-sm-6{ width:50%; float:left;}
  .col-sm-7{ width:58.333333333333336%; float:left;}
  .col-sm-8{ width:66.66666666666666%; float:left;}
  .col-sm-9{ width:75%; float:left;}
  .col-sm-10{ width:83.33333333333334%; float:left;}
  .col-sm-11{ width:91.66666666666666%; float:left;}
  .col-sm-12{ width:100%; float:left;}
  .col-sm-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;}
  .col-sm-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;}
  .col-sm-mar-3{margin-left:25%; margin-right:25%;}
  .col-sm-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;}
  .col-sm-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;}
  .col-sm-mar-6{margin-left:50%; margin-right:50%;}
  .col-sm-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;}
  .col-sm-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;}
  .col-sm-mar-9{margin-left:75%; margin-right:75%;}
  .col-sm-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;}
  .col-sm-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;}
 }
 @media screen and (min-width: 769px) and (max-width: 992px) {
  .col-md-1{ width: 8.333333333333332%; float:left;}
  .col-md-2{ width:16.666666666666664%; float:left;}
  .col-md-3{ width:25%; float:left;}
  .col-md-4{ width:33.33333333333333%; float:left;}
  .col-md-5{ width:41.66666666666667%; float:left;}
  .col-md-6{ width:50%; float:left;}
  .col-md-7{ width:58.333333333333336%; float:left;}
  .col-md-8{ width:66.66666666666666%; float:left;}
  .col-md-9{ width:75%; float:left;}
  .col-md-10{ width:83.33333333333334%; float:left;}
  .col-md-11{ width:91.66666666666666%; float:left;}
  .col-md-12{ width:100%; float:left;}
  .col-md-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;}
  .col-md-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;}
  .col-md-mar-3{margin-left:25%; margin-right:25%;}
  .col-md-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;}
  .col-md-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;}
  .col-md-mar-6{margin-left:50%; margin-right:50%;}
  .col-md-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;}
  .col-md-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;}
  .col-md-mar-9{margin-left:75%; margin-right:75%;}
  .col-md-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;}
  .col-md-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;}
 }
 @media screen and (min-width: 993px) and (max-width: 1200px) {
  .container{ width:900px; margin:0 auto;}
  .col-lg-1{ width: 8.333333333333332%; float:left;}
  .col-lg-2{ width:16.666666666666664%; float:left;}
  .col-lg-3{ width:25%; float:left;}
  .col-lg-4{ width:33.33333333333333%; float:left;}
  .col-lg-5{ width:41.66666666666667%; float:left;}
  .col-lg-6{ width:50%; float:left;}
  .col-lg-7{ width:58.333333333333336%; float:left;}
  .col-lg-8{ width:66.66666666666666%; float:left;}
  .col-lg-9{ width:75%; float:left;}
  .col-lg-10{ width:83.33333333333334%; float:left;}
  .col-lg-11{ width:91.66666666666666%; float:left;}
  .col-lg-12{ width:100%; float:left;}
  .col-lg-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;}
  .col-lg-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;}
  .col-lg-mar-3{margin-left:25%; margin-right:25%;}
  .col-lg-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;}
  .col-lg-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;}
  .col-lg-mar-6{margin-left:50%; margin-right:50%;}
  .col-lg-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;}
  .col-lg-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;}
  .col-lg-mar-9{margin-left:75%; margin-right:75%;}
  .col-lg-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;}
  .col-lg-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;}
 }
 @media screen and (min-width: 1201px) {
  .container{ width:1100px; margin:0 auto;}
  .col-xs-max-1{ width: 8.333333333333332%; float:left;}
  .col-xs-max-2{ width:16.666666666666664%; float:left;}
  .col-xs-max-3{ width:25%; float:left;}
  .col-xs-max-4{ width:33.33333333333333%; float:left;}
  .col-xs-max-5{ width:41.66666666666667%; float:left;}
  .col-xs-max-6{ width:50%; float:left;}
  .col-xs-max-7{ width:58.333333333333336%; float:left;}
  .col-xs-max-8{ width:66.66666666666666%; float:left;}
  .col-xs-max-9{ width:75%; float:left;}
  .col-xs-max-10{ width:83.33333333333334%; float:left;}
  .col-xs-max-11{ width:91.66666666666666%; float:left;}
  .col-xs-max-12{ width:100%; float:left;}
  .col-xs-max-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;}
  .col-xs-max-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;}
  .col-xs-max-mar-3{margin-left:25%; margin-right:25%;}
  .col-xs-max-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;}
  .col-xs-max-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;}
  .col-xs-max-mar-6{margin-left:50%; margin-right:50%;}
  .col-xs-max-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;}
  .col-xs-max-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;}
  .col-xs-max-mar-9{margin-left:75%; margin-right:75%;}
  .col-xs-max-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;}
  .col-xs-max-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;}
 }
 /*ui细化*/
 .width-10{ width:10px;}
 .width-50{ width:50px;}
 .width-100{ width:100px;}
 .width-150{ width:150px;}
 .width-200{ width:200px;} 
 .border-normal{ background:#999; border:none; margin:10px 10%; display:block; border-radius:10px; height:50px; line-height:40px; color:#fff; text-align:center; width:80%; font-size:18px; cursor:pointer;}
 .border-success{background:#0C6;border:none;margin:10px 10%;display:block; border-radius:10px;height:50px;  line-height:40px; color:#fff; text-align:center;width:80%; font-size:18px; cursor:pointer;}
 .border-err{background:#F33;border:none;margin:10px 10%;display:block; border-radius:10px;height:50px; line-height:40px; color:#fff;  text-align:center;width:80%; font-size:18px; cursor:pointer;}
 .table-normal{ width:100%; margin:10px 0px; border-collapse:collapse;}
 .table-normal td{ border:1px solid #999; padding:5px;}
 .table-radius{ width:100%; margin:10px 0px; border-spacing:0px;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:10px;}
 .table-radius td{ border-top:1px solid #999;border-left:1px solid #999; padding:5px;}
 .table-radius tr td:last-child{}
 .table-radius tr:last-child td{}
 .table-radius tr:first-child td:first-child{border-radius:10px 0 0 0;}
 .table-radius tr:first-child td:last-child{border-radius:0 10px 0 0;}
 .table-radius tr:last-child td:first-child{border-radius:0 0 0 10px;}
 /*=========================自定义样式===========================*/
 #size{ height:50px; line-height:50px; text-align:center; font-weight:bold; font-size:20px; margin:50px; border-bottom:5px solid #09F;}
 .col{ margin:20px 0; background:#0CF; box-sizing:border-box; border:2px solid #993;}
 .col2{background:#C30; box-sizing:border-box; border:2px solid #0CF;height:50px;}
    </style>
</head>
<body>
 <div id="size">测试窗口大小当前为<span id="sizeval">0</span>px</div>
    <h3 style="text-align:center;">演示:12列布局</h3>
    <div class="container">
        <div class="row">
            <div class="col col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2 col-xs-max-mar-1">1</div>
            <div class="col col-md-5 col-lg-3 col-xs-max-2">2</div>
            <div class="col col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2">3</div>
            <div class="col col-md-5 col-lg-3 col-xs-max-2">
             <div class="row">
                    <div class="col2 col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2">3-1</div>
                    <div class="col2 col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2">3-2</div>
                </div>
            </div>
            <div class="col col-md-12 col-lg-6 col-xs-max-12">4</div>
            <div class="col col-md-8 col-lg-6 col-xs-max-3">5</div>
            <div class="col col-md-4 col-lg-6 col-xs-max-3">6</div>
            <div class="col col-md-4 col-lg-6 col-xs-max-6">7</div>
        </div>
    </div>
    <h3 style="text-align:center;">演示:表单ui</h3>
    <div class="container">
     <input type="button" class="border-normal" value="提交">
        <input type="button" class="border-success" value="提交">
        <input type="button" class="border-err" value="提交">
    </div>
    <h3 style="text-align:center;">演示:表格</h3>
    <div class="container">
    <table class="table-normal">
     <tr><td>1</td><td>1</td><td>1</td></tr>
        <tr><td>2</td><td>2</td><td>2</td></tr>
        <tr><td>3</td><td>3</td><td>3</td></tr>
    </table>
    <table class="table-radius">
     <tr><td>1</td><td>1</td><td>1</td></tr>
        <tr><td>2</td><td>2</td><td>2</td></tr>
        <tr><td>3</td><td>3</td><td>3</td></tr>
    </table>
    </div>
    
</body>
<script>
var size=document.getElementById("size");
var sizeval=document.getElementById("sizeval");
sizeval.innerHTML=document.documentElement.offsetWidth;
window.onresize=function(){
 sizeval.innerHTML=document.documentElement.offsetWidth;
};
</script>
</html>

流式布局,百分比赋值,多预设设置结合媒体查询。

 

移动适配方案:媒体查询+rem

移动端另一种适配方案,一般就是对所有移动设备布局的处理,基本上屏幕小于640px;原理就是rem的使用,我们知道rem的值处理是相对html字体大小的设置,我们就是利用这个原理,通过媒体查询,把主流移动设备的html字体大小进行了设置,比如640px的设备我们设置为100px,页面input高度0.5rem就换算成50px,同我们还是320px的设备,320px设备相对我们的640px比例*100px就会得到字体大小为50px,我们在320px设备下,0.5rem换算就是25px,当然设备很多,我们在布局之前要针对所有主流设备做一套html字体大小+媒体查询的设置,不过设置好了我们就一直可用,就算多了新的设备,我们以后添加即可。

这种布局方案会不同设备有不同显示,相对精准。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title>移动适配方案:媒体查询+rem</title>
<style type="text/css">
/*css预设*/
*{ padding:0; margin:0}
html,body{ height: 100%; width: 100%;}
.clearfix:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;}
.clearfix{ zoom:1;}
/*clear*/
.left{float:left;}
.right{float:right;}
.clear{clear:both;}
@media screen and (max-width: 320px) {
	html{ font-size:50px;}
}
@media screen and (min-width: 321px) and (max-width: 375px) {
	html{ font-size:58.59px;}
}
@media screen and (min-width: 376px) and (max-width: 414px) {
	html{ font-size:64.68px;}
}
@media screen and (min-width: 415px) and (max-width: 640px) {
	html{ font-size:100px;}
}
@media screen and (min-width: 641px) {
	html{ font-size:100px;}
}
/*布局样式*/
.box{ border-bottom:1px solid #999;border-top:1px solid #999; margin-top:0.1rem;font-size:0.2rem;}
.box span{height:0.4rem; line-height:0.4rem; width:1rem; float:left; text-align:right;}
.box input{height:0.4rem; line-height:0.4rem; width:5.4rem; float:left; border:none;}
.box2{border-top:1px solid #999;margin-top:0.2rem;font-size:0.2rem;}
.box2 dl{border-bottom:1px solid #999;}
.box2 dl dt{ float:left;width:2rem; height:2rem;}
.box2 dl dt a{ width:100%; height:100%; display:block; margin-right:0.1rem; background:#09C;} 
.box2 dl dd{ float:left; width:4.3rem;height:2rem;}
.box2 dl dd p{ line-height:0.4rem;}
</style>
</head>
<body>
<div class="box clearfix">
	<span>名字:</span>
    <input type="text" />
</div>
<div class="box2">
	<dl class="clearfix">
    	<dt><a href="#2"></a></dt>
        <dd>
        	<p>1</p>
            <p>2</p>
            <p>3</p>
            <p>4</p>
            <p>5</p>
        </dd>
    </dl>
    <dl class="clearfix">
    	<dt><a href="#2"></a></dt>
        <dd>
        	<p>1</p>
            <p>2</p>
            <p>3</p>
            <p>4</p>
            <p>5</p>
        </dd>
    </dl>
</div>
</body>
</html>

 

 

移动适配方案:js查询+rem

mediaQuery.min.js

(function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="100px"}else{e.style.fontSize=100*(f/640)+"px"}};if(!d.addEventListener){return}c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false);b()})(document,window);

引用+布局

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title>移动适配方案:媒体查询+rem</title>
<script src="mediaQuery.min.js"></script>
<style type="text/css">
/*css预设*/
*{ padding:0; margin:0}
html,body{ height: 100%; width: 100%;}
.clearfix:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;}
.clearfix{ zoom:1;}
/*clear*/
.left{float:left;}
.right{float:right;}
.clear{clear:both;}
/*布局样式*/
.box{ border-bottom:1px solid #999;border-top:1px solid #999; margin-top:0.1rem;font-size:0.2rem;}
.box span{height:0.4rem; line-height:0.4rem; width:1rem; float:left; text-align:right;}
.box input{height:0.4rem; line-height:0.4rem; width:5.4rem; float:left; border:none;}
.box2{border-top:1px solid #999;margin-top:0.2rem;font-size:0.2rem;}
.box2 dl{border-bottom:1px solid #999;}
.box2 dl dt{ float:left;width:2rem; height:2rem;}
.box2 dl dt a{ width:100%; height:100%; display:block; margin-right:0.1rem; background:#09C;} 
.box2 dl dd{ float:left; width:4.3rem;height:2rem;}
.box2 dl dd p{ line-height:0.4rem;}
</style>
</head>
<body>
<div class="box clearfix">
	<span>名字:</span>
    <input type="text" />
</div>
<div class="box2">
	<dl class="clearfix">
    	<dt><a href="#2"></a></dt>
        <dd>
        	<p>1</p>
            <p>2</p>
            <p>3</p>
            <p>4</p>
            <p>5</p>
        </dd>
    </dl>
    <dl class="clearfix">
    	<dt><a href="#2"></a></dt>
        <dd>
        	<p>1</p>
            <p>2</p>
            <p>3</p>
            <p>4</p>
            <p>5</p>
        </dd>
    </dl>
</div>
</body>
</html>

 

© 著作权归作者所有

共有 人打赏支持
透笔度
粉丝 71
博文 128
码字总数 235452
作品 0
朝阳
前端工程师
使用 jQuery Mobile 和 CSS3 实现响应式设计

jQuery Mobile 框架是一个 JavaScript 库,您可以用它来轻松地创建了一个移动版本的网站,将现有的 Web 页面转换成触摸友好的网站和应用程序。jQuery Mobile 框架允许用户通过 Web 浏览器直接...

IBMdW
2012/05/27
8.6K
3
【CSS3初探之Media Queries】终于完成了的CSS3,我们来个终章总结!

前言 无论如何,学到这里,我可以自豪的告诉自己,我HTML5与CSS3学完了,不管我现在还记得住多少,我确确实实将他们学完了,还做了不少demo。 回想几个月前,我一直在纠结自己应该学习HTML5...

范大脚脚
2017/12/14
0
0
html5shiv.js和respond.min.js

做页面常用的东西,写这里用的时候省点去找了。。。 html5shiv:解决ie9以下浏览器对html5新增标签的不识别,并导致CSS不起作用的问题。 respond.min:让不支持css3 Media Query的浏览器包括I...

刘元兴
2017/05/18
0
0
响应式 Web 设计技巧

什么是响应式设计? iOS 和 Android 的发布,智能手机、平板电脑、智能家电等新设备层出不穷,极大便利了我们的生活,但面对形形色色的终端设备,千差万别的屏幕分辨率,给网页设计带来了新的...

凡尘里的一根葱
2015/11/24
129
0
响应式设计之媒体查询

今天就总结一下响应式设计的核心CSS技术Media(媒体查询器)的用法。 准备工作1:设置Meta标签 首先我们在使用Media的时候需要先设置下面这段代码,来兼容移动设备的展示效果: 这段代码的几个...

独孤蝈蝈
2016/10/25
19
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
31
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部