javascript: detect screen size
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="apple-moible-web-app-capable" content="yes"> <meta name="apple-moible-web-app-status-bar-style" content="black"> <title>Get Screen Resolution of Mobile Devices with JavaScript</title> <meta http-equiv="Refresh" content="10000000000000" /> <meta content=" Detect Screen 检测客户端显示窗口大小 " name="keywords"> <meta content=" Detect Screen 检测客户端显示窗口大小" name="description"> <meta name="author" content="Geovin Du 涂聚文"> <meta http-equiv="X-UA-Compatible" content="IE =EmulateIE7"> <meta http-equiv="X-UA-Compatible" content="chrome =1" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta property="og:type" content="geovindu website"> <meta property="og:title" content="Car Visualizer" /> <meta property="og:image" content="http://www.dusystem.com/geovindu.jpg" /> <meta property="og:url" content="http://www.dusystem.com/js/" /> <meta property="og:description" content="geovindu." /> <!-- For Chrome for Android: --> <link rel="icon" sizes="192x192" href="touch-icon-192x192.png"> <!-- For iPhone 6 Plus with @3× display: --> <link rel="apple-touch-icon-precomposed" sizes="180x180" href="apple-touch-icon-180x180-precomposed.png"> <!-- For iPad with @2× display running iOS ≥ 7: --> <link rel="apple-touch-icon-precomposed" sizes="152x152" href="apple-touch-icon-152x152-precomposed.png"> <!-- For iPad with @2× display running iOS ≤ 6: --> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144-precomposed.png"> <!-- For iPhone with @2× display running iOS ≥ 7: --> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="apple-touch-icon-120x120-precomposed.png"> <!-- For iPhone with @2× display running iOS ≤ 6: --> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114-precomposed.png"> <!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≥ 7: --> <link rel="apple-touch-icon-precomposed" sizes="76x76" href="apple-touch-icon-76x76-precomposed.png"> <!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≤ 6: --> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72-precomposed.png"> <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --> <link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png"><!-- 57×57px --> <link rel="apple-touch-icon" sizes="57x57" href="touch-icon-iphone.png" /> <link rel="apple-touch-icon" sizes="72x72" href="touch-icon-ipad.png" /> <link rel="apple-touch-icon" sizes="114x114" href="touch-icon-iphone4.png" /> <link rel="apple-touch-icon" sizes="144x144" href="apple-touch-icon-ipad3-144.png" /> <link rel="shortcut icon" href="~/favicon.ico" type="image/x-icon" /> <link rel="icon" href="/favicon.ico" /> <link rel="bookmark" href="/favicon.ico" type="image/gif" /> <link rel="stylesheet" media="screen and (orientation:portrait) and (min-width:360px;)" href="portrait-screen.css" /> <!--[if lt IE 9]> <script src="js/html5shiv.js"></script> <![endif]--> <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="Css/IE6.css" media="all" /> <![endif]--> <!--if lte IE 6]> <script src="js/letskillie6.zh_CN.pack.js"></script> <!--endif]--> <style type="text/css"> /*媒体查询方法 https://www.ryadel.com/en/css3-media-query-target-only-ie-ie6-ie11-firefox-chrome-safari-edge/ */ @media screen and (max-width:960px) and (min-width:450px) { body { background-color: #E5080B; } } @import url("phone.css") screen and (max-width:360px); /** * Font To Web 迷你繁篆书 * http://font-to-web.com * the font designed for your website */ @font-face { font-family: 'minizhuanshu'; src: url('http://www.dusystem.com/webfont/fonts/3pdwg6wqe1jpcgh.eot'); /*IE 9 Compat Modes*/ src: url('http://www.dusystem.com/webfont/fonts/3pdwg6wqe1jpcgh.eot?#iefix') format('embedded-opentype'), /*IE6-IE8 */ /* src: local('minizhuanshu'), local('minizhuanshu'), */ url('http://www.dusystem.com/webfont/fonts/3pdwg6wqe1jpcgh.woff') format('woff'), /*Modern Browsers*/ url('http://www.dusystem.com/webfont/fonts/3pdwg6wqe1jpcgh.ttf') format('truetype'), /*Safari,Android,iOS */ url('http://www.dusystem.com/webfont/fonts/3pdwg6wqe1jpcgh.svg#minizhuanshu') format('svg'); /*Legacy iOS */ font-weight: normal; font-style: normal; /*字体样式*/ font-display: swap; /* 先匹配到的已经能够使用的字体,字体成功载入后切换字体*/ } html{ -webkit-text-size-adjust:100%; /*Safari */ -moz-text-size-adjust:100%; /*Firefox*/ -ms-text-size-adjust:100%; /*Microsoft*/ /*Opera o-*/ /*Konqueror -khtml*/ /*RIM -rim*/ /*Chrome -chrome*/ /*避免文本字体大小重置*/ text-size-adjust:100%; } body { /** ie 8以上background-size:cover; 背景图自适应*/ background: url(normal1.png) no-repeat; background-size: 100% 100%; filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale')"; -moz-background-size: 100% 100%; font-family: minizhuanshu !important; /*字体名*/ font-family: minizhuanshu; font-display: swap; /* 先匹配到的已经能够使用的字体,字体成功载入后切换字体*/ } .ht, .wd { width: 150px; height: 10px; background-color: #42c264; background-image: -webkit-linear-gradient(#4fec50,#42c264); /*Safari */ background-image: -moz-linear-gradient(#4fec50,#42c264); /*Firefox*/ background-image: -o-linear-gradient(#4fec50,#42c264); /*Opera*/ background-image: -ms-linear-gradient(#4fec50,#42c264); /*IE*/ background-image: -chrome-linear-gradient(#4fec50,#42c264); /*Chrome*/ background-image: linear-gradient(#4fec50,#42c264); } .box { font-family: minizhuanshu !important; /*字体名*/ font-family: minizhuanshu; } canvas { border: 1px solid red; background-size: 100% 100%; height: 100%; width: 100%; font-family: minizhuanshu !important; /*字体名*/ font-family: minizhuanshu; font-display: swap; /* 先匹配到的已经能够使用的字体,字体成功载入后切换字体*/ } img, object, video, embed { max-width: 100%; } img { max-width: 100%; max-width: 128px; max-height: 128px; height: auto; zoom: expression( function(e) { if(e.width>e.height) {if (e.width>128) { e.height = e.height*(128 /e.width); e.width=128; }} else {if (e.height>128) { e.width = e.width*(128 /e.height); e.height=128; }} e.style.zoom = '1'; }(this)); overflow: hidden; } </style> <script src="Scripts/jquery-3.4.1.js"></script> <!--[if lt IE9]> <script> //IE6/7/8兼容HTML5和css3 (function() { if (!/*@cc_on!@*/0) return; var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', '); var i= e.length; while (i--){ document.createElement(e[i]) } })() </script> <![endif]--> <script src="js-webshim/minified/polyfiller.js"></script> <script> // load and implement all unsupported features webshims.polyfill(); // or only load a specific feature //webshims.polyfill('forms es5'); </script> <script src="js/css3-mediaqueries.min.js"></script> <script async type="text/javascript"> var tensor_obj; function Refresh() { window.location.reload(); } setTimeout('Refresh()', 100000); //10秒刷新一次 window.onload = function () { //加载页面的时候就执行 tensor_obj = document.getElementById("canvasdu"); //根据ID获取html元素 var heigth_screen = window.innerHeight; //获取整个屏幕的分辨率 var width_screen = window.innerWidth; heigth_screen = heigth_screen * 0.85; //在这里分配整个界面的85%给iframe来显示嵌套的界面 tensor_obj.style.height = heigth_screen + "px"; width_screen = width_screen * 0.85; tensor_obj.style.width = width_screen + "px"; console.log(width_screen); drawImage(tensor_obj); } // function resizeimg(obj, maxW, maxH) { var imgW = obj.width; var imgH = obj.height; if (imgW > maxW || imgH > maxH) { var ratioA = imgW / maxW; var ratioB = imgH / maxH; if (ratioA > ratioB) { imgW = maxW; imgH = maxW * (imgH / imgW); } else { imgH = maxH; imgW = maxH * (imgW / imgH); } obj.width = imgW; obj.height = imgH; } //obj.style.margin - left=(800 - imgW) / 2; //obj.style.margin - top=(800 - imgH) / 2; } //背景图片自适应 变动时加载 window.onresize = window.onload = function () { var w, bgImg, h; if (!!(window.attachEvent && !window.opera)) { w = document.documentElement.clientWidth; h = document.documentElement.clientHeight; } else { w = window.innerWidth; h = window.innerHeight; } if (w > 1650) { document.getElementById("msg").value = "窗大小:" + "w:" + w + ",h:" + h; //bgImg = document.getElementById("bg").getElementsByTagName("img")[0]; //bgImg.width = (w - 5); } else { document.getElementById("msg").value = "窗大小:" + "w:" + w + ",h:" + h; // bgImg = document.getElementById("bg").getElementsByTagName("img")[0]; //bgImg.width = 1650; } drawImage(tensor_obj); } //edit: Geovin Du from https://stackoverflow.com/questions/2242086/how-to-detect-the-screen-resolution-with-javascript // https://ryanve.com/_php/airve/chromosome/request.php?request=lab/resolution/ // $(document).ready(function () { //1 var width = window.screen.width * window.devicePixelRatio; var heiht = window.screen.height * window.devicePixelRatio; $('#swidth').val(width); $('#sheight').val(heiht); //2 heiht = window.screen.availHeight width = window.screen.availWidth $('#swidth2').val(width); $('#sheight2').val(heiht); //3 heiht = window.screen.height width = window.screen.width $('#swidth3').val(width); $('#sheight3').val(heiht); width = window.innerWidth heiht = window.innerHeight $('#swidth4').val(width); $('#sheight4').val(heiht); //第一次加载 document.getElementById("msg").value = "大小:" + "w:" + width + ",h:" + heiht; //显示器像素颜色位深 width = screen.pixelDepth; heiht = screen.colorDepth; $('#swidth5').val(width); $('#sheight5').val(heiht); // $('#swidth6').val(screen.orientation.type); $('#sheight6').val(screen.orientation.angle); $('#swidth7').val(navigator.oscpu); $('#sheight7').val(navigator.vendor); // navigator.geolocation.getCurrentPosition((position) => p = position); $('#swidth8').val(navigator.platform); $('#sheight8').val(p.timestamp); var lat = p.coords.latitude; var lon = p.coords.longitude; $('#swidth9').val(lat); $('#sheight9').val(lon); //var res = require('res'); //document.write(res.dppx()); // 1 //document.write(res.dpi()); // 96 // document.write(res.dpcm()); // 37.79527559055118 /* var $imgs = $("img"); for (var i = 0; i < $imgs.length; i++) { if ($imgs[i].width > document.body.clientWidth) { $imgs[i].height = $imgs[i].height * ((document.body.clientWidth - 80) / $imgs[i].width); $imgs[i].width = document.body.clientWidth - 80; $imgs[i].onclick = function () { window.open(this.src) }; $imgs[i].title = "点击查看大图"; $imgs[i].style.cursor = "pointer"; } }*/ }); function getResolution() { var width = window.screen.width * window.devicePixelRatio; var heiht = window.screen.height * window.devicePixelRatio; $('#swidth').val(width); $('#sheight').val(heiht); //alert("Your screen resolution is: " + window.screen.width * window.devicePixelRatio + "x" + window.screen.height * window.devicePixelRatio); } !function (root, name, make) { if (typeof module != 'undefined' && module.exports) module.exports = make() else root[name] = make() }(this, 'res', function () { var one = { dpi: 96, dpcm: 96 / 2.54 } function ie() { return Math.sqrt(screen.deviceXDPI * screen.deviceYDPI) / one.dpi } function dppx() { // devicePixelRatio: Webkit (Chrome/Android/Safari), Opera (Presto 2.8+), FF 18+ return typeof window == 'undefined' ? 0 : +window.devicePixelRatio || ie() || 0 } function dpcm() { return dppx() * one.dpcm } function dpi() { return dppx() * one.dpi } return { 'dppx': dppx, 'dpi': dpi, 'dpcm': dpcm } }); </script> </head> <body onload="draw('canvasdu')"> <div>width*height, 涂聚文</div> <div><input class="wd" id="swidth" type="text" /><input class="ht" id="sheight" type="text" /><br /></div> <div><input class="wd" id="swidth2" type="text" /><input class="ht" id="sheight2" type="text" /><br /></div> <div><input class="wd" id="swidth3" type="text" /><input class="ht" id="sheight3" type="text" /><br /></div> <div><input class="wd" id="swidth4" type="text" /><input class="ht" id="sheight4" type="text" /><br /></div> <div><input class="wd" id="swidth5" type="text" /><input class="ht" id="sheight5" type="text" /><br /></div> <div><input class="wd" id="swidth6" type="text" /><input class="ht" id="sheight6" type="text" /><br /></div> <div><input class="wd" id="swidth7" type="text" /><input class="ht" id="sheight7" type="text" /><br /></div> <div><input class="wd" id="swidth8" type="text" /><input class="ht" id="sheight8" type="text" /><br /></div> <div><input class="wd" id="swidth9" type="text" /><input class="ht" id="sheight9" type="text" /><br /></div> <div><button type="button" onclick="getResolution();">Get Resolution</button></div> <div><input class="wd" id="msg" type="text" /></div> <canvas id="canvasdu"></canvas> <div class="box" id="box" style="display:none;"></div> <input type="button" value="下载画报" onclick="downloadimg();" /> <script> var context; const myFont = new FontFace("minizhuanshu", "url(http://www.dusystem.com/webfont/fonts/3pdwg6wqe1jpcgh.ttf)") myFont.load().then(font => { document.fonts.add(font) }).then(() => { const cvs = document.querySelector("canvasdu"); const ctx = cvs.getContext("2d"); ctx.font = "30px minizhuanshu"; ctx.fillStyle = 'green'; ctx.fillText("涂聚文", 50, 50); ctx.strokeStyle = 'green'; ctx.stroke(); }) // function draw(id) { var canvas = document.getElementById(id); var context = canvas.getContext('2d'); //获取对应的2D对象(画笔) context.fillStyle = 'green'; //设置填充的背景颜色 context.fillRect(0, 0, 800, 300); //绘制 800*300 像素的已填充矩形: context.fillStyle = '#fff'; context.strokeStyle = '#fff'; //设置笔触的颜色 context.font = "bold 40px 'minizhuanshu','minizhuanshu','微软雅黑','宋体'"; //设置字体 context.textBaseline = 'hanging'; //在绘制文本时使用的当前文本基线 context.fillText('Geovin Du', 10, 40); //设置文本内容 context.fillText('《canvas轻松入门》', 40, 110); context.fillText('涂聚文', 280, 180); context.stroke(); } //在Canvas上绘制自适应窗口 var canvas = document.getElementById("canvasdu"); if (canvas.getContext) { context = document.getElementById("canvasdu").getContext("2d"); context.font = "30px minizhuanshu"; context.stroke(); } else { alert("浏览器不支持canvas!"); } // this function fill an image on canvas function drawImage(image) { // context.drawImage(image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height); //需根据窗体大小打印字并且是一个平行的缩小或放大(几何学) var fonttop,fontleft; if(image.height < 600) { fonttop = 30; fontleft = 10; } else if (image.height < 600 && image.width<600) { fonttop = 30; fontleft = 10; } else if(image.height>600 && image.height<1200 && image.width>600 && image.width<1200) { fonttop = 150; fontleft = 120; } else { fonttop = 250; fontleft = 120; } context.fillStyle = "#fff"; // 文字填充颜色 context.font = "30px minizhuanshu"; context.fillText("牛年快乐!牛气冲天!", fontleft + 20, fonttop+0); context.fillStyle = "#fff"; context.font = "40px minizhuanshu"; context.fillText("2021年", fontleft + 20, fonttop +40); context.fillStyle = "#fff"; context.font = "26px minizhuanshu"; context.fillText("我也会一直陪在你身边,Geovin Du", fontleft + 20, fonttop+70);//要分分行,如果宽度不够时 context.fillStyle = "yellow"; context.font = "26px minizhuanshu"; context.lineWidth = 1; var str = "同是天涯人,好好珍惜相遇的情谊。" // context.fillText(str,65,750); var lineWidth = 0; var canvasWidth = canvas.width - 50;//计算canvas的宽度 var initHeight = fonttop +110;//绘制字体距离canvas顶部初始的高度 var lastSubStrIndex = 0; //每次开始截取的字符串的索引 for (let i = 0; i < str.length; i++) { lineWidth += context.measureText(str[i]).width; if (lineWidth > canvasWidth) { context.fillText(str.substring(lastSubStrIndex, i), 25, initHeight);//绘制截取部分 initHeight += 40;//40为字体的高度 lineWidth = 25; lastSubStrIndex = i; } if (i == str.length - 1) {//绘制剩余部分,进行分行 context.fillText(str.substring(lastSubStrIndex, i + 1), 25, initHeight); } } context.stroke(); } var imageObj = new Image(); imageObj.onload = function () { drawImage(this); }; imageObj.src = "normal1.png"; // set this to false to maintain the canvas aspect ratio, or true otherwise var stretch_to_fit = false; function resize() { // aspect ratio var widthToHeight = canvas.width / canvas.height; var newWidthToHeight = widthToHeight; // cache the window dimensions (discount the border) var newWidth = window.innerWidth - 2, newHeight = window.innerHeight - 2; if (stretch_to_fit) { // overwrite the current canvas aspect ratio to fit the entire screen widthToHeight = window.innerWidth / window.innerHeight; } else { newWidthToHeight = newWidth / newHeight; } // scale the canvas if (newWidthToHeight > widthToHeight) { newWidth = newHeight * widthToHeight; canvas.height = newHeight; canvas.width = newWidth; } else { newHeight = newWidth / widthToHeight; canvas.width = newWidth; canvas.height = newHeight; } }; // listen to resize events window.addEventListener('resize', function () { // resizes the canvas (this will clear the canvas because the width and height parameters are changed). resize(); // so, we need to redraw the image back on canvas drawImage(imageObj); }, false); // also resize the screen on orientation changes window.addEventListener('orientationchange', function () { resize(); drawImage(imageObj); }, false); // first resiz resize(); // window.onload = function () { var img = convertCanvasToImage(canvas); $('.box').append(img); console.log(img); } // function convertCanvasToImage(canvas) { var image = new Image(); image.src = canvas.toDataURL("image/png"); return image; } //加载字体文件obj格式, cssValue为自定义字体的名字, url为自定义字体的文件路径 function loadFont(obj){ if (document.fonts && !this.checkFont(obj.cssValue)) { let that = this; let fontFamily = obj.cssValue; console.log(obj); let fontFace = new FontFace(obj.cssValue, `local('${obj.cssValue}'),url('${obj.url}') format('ttf'),url('${obj.url}')`); fontFace.load().then(function (loadedFontFace) { document.fonts.add(loadedFontFace); that.canvasDemo.updateTextFontFamily(fontFamily); }); } } //检测字体文件是否已加载 function checkFont(name){ let values = document.fonts.values(); let isHave = false; let item = values.next(); while (!item.done && !isHave) { let fontFace = item.value; if (fontFace.family == name) { isHave = true; } item = values.next(); } return isHave; } //下载海报 function downloadimg() { var img = $('.box').children('img').attr("src"); var alink = document.createElement("a"); alink.href = img; alink.download = "2021牛年新年快乐.png"; alink.click(); } </script> </body> </html>
<link rel="stylesheet" media="screen and (orientation:portrait) and (min-width:360px;)" href="portrait-screen.css"/> <style type="text/css"> /*媒体查询方法*/ @mediam screen and (max-width:960px) and (min-width:450px) { body{ background-color: #E5080B;} } @import url("phone.css") screen and (max-width:360px); .ht, .wd { width: 150px; height: 10px; background-color: #42c264; background-image: -webkit-linear-gradient(#4fec50,#42c264); /*Safari */ background-image: -moz-linear-gradient(#4fec50,#42c264);/*Firefox*/ background-image: -o-linear-gradient(#4fec50,#42c264);/*Opera*/ background-image: -ms-linear-gradient(#4fec50,#42c264);/*IE*/ background-image: -chrome-linear-gradient(#4fec50,#42c264);/*Chrome*/ background-image: linear-gradient(#4fec50,#42c264); }
WebGL 3D开发实战详解 第2版 IE 6 CSS * html .ie6 { property: value; } * html .ie6 { property: value; } or CSS .ie6 { _property: value; } .ie6 { _property: value; } IE 7 CSS *+html .ie7 { property: value; } *+html .ie7 { property: value; } or CSS *:first-child+html .ie7 { property: value; } *:first-child+html .ie7 { property: value; } IE 6 and 7 CSS @media screen\9 { .ie67 { property: value; } } @media screen\9 { .ie67 { property: value; } } or CSS .ie67 { *property: value; } .ie67 { *property: value; } or CSS .ie67 { #property: value; } .ie67 { #property: value; } IE 6, 7 and 8 CSS @media \0screen\,screen\9 { .ie678 { property: value; } } @media \0screen\,screen\9 { .ie678 { property: value; } } IE 8 CSS html>/**/body .ie8 { property: value; } html>/**/body .ie8 { property: value; } or CSS @media \0screen { .ie8 { property: value; } } @media \0screen { .ie8 { property: value; } } IE 8 Standards Mode Only CSS .ie8 { property /*\**/: value\9 } .ie8 { property /*\**/: value\9 } IE 8,9 and 10 CSS @media screen\0 { .ie8910 { property: value; } } @media screen\0 { .ie8910 { property: value; } } IE 9 only CSS @media screen and (min-width:0\0) and (min-resolution: .001dpcm) { // IE9 CSS .ie9{ property: value; } } @media screen and (min-width:0\0) and (min-resolution: .001dpcm) { // IE9 CSS .ie9{ property: value; } } IE 9 and above CSS @media screen and (min-width:0\0) and (min-resolution: +72dpi) { // IE9+ CSS .ie9up { property: value; } } @media screen and (min-width:0\0) and (min-resolution: +72dpi) { // IE9+ CSS .ie9up { property: value; } } IE 9 and 10 CSS @media screen and (min-width:0\0) { .ie910 { property: value\9; } /* backslash-9 removes ie11+ & old Safari 4 */ } @media screen and (min-width:0\0) { .ie910 { property: value\9; } /* backslash-9 removes ie11+ & old Safari 4 */ } IE 10 only CSS _:-ms-lang(x), .ie10 { property: value\9; } _:-ms-lang(x), .ie10 { property: value\9; } IE 10 and above CSS _:-ms-lang(x), .ie10up { property: value; } _:-ms-lang(x), .ie10up { property: value; } or CSS @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .ie10up { property:value; } } @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .ie10up { property:value; } } IE 11 (and above..) CSS _:-ms-fullscreen, :root .ie11up { property: value; } _:-ms-fullscreen, :root .ie11up { property: value; } Microsoft Edge CSS @supports (-ms-ime-align:auto) { .selector { property: value; } } @supports (-ms-ime-align:auto) { .selector { property: value; } } Firefox Any version (Gecko) CSS @-moz-document url-prefix() { .ff { color: red; } } @-moz-document url-prefix() { .ff { color: red; } } Quantum Only (Stylo) CSS @-moz-document url-prefix() { @supports (animation: calc(0s)) { /* Stylo */ .ffStylo { property: value; } } } @-moz-document url-prefix() { @supports (animation: calc(0s)) { /* Stylo */ .ffStylo { property: value; } } } Legacy (pre-Stylo) CSS @-moz-document url-prefix() { @supports not (animation: calc(0s)) { /* Gecko */ .ffGecko { property: value; } } } @-moz-document url-prefix() { @supports not (animation: calc(0s)) { /* Gecko */ .ffGecko { property: value; } } } Webkit Chrome & Safari (any version) CSS @media screen and (-webkit-min-device-pixel-ratio:0) { property: value; } @media screen and (-webkit-min-device-pixel-ratio:0) { property: value; } Chrome 29+ CSS @media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm) { .chrome { property: value; } } @media screen and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm) { .chrome { property: value; } } Safari (7.1+) CSS _::-webkit-full-page-media, _:future, :root .safari_only { property: value; } _::-webkit-full-page-media, _:future, :root .safari_only { property: value; } Safari (from 6.1 to 10.0) CSS @media screen and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0) { @media { .safari6 { color:#0000FF; background-color:#CCCCCC; } } } @media screen and (min-color-index:0) and(-webkit-min-device-pixel-ratio:0) { @media { .safari6 { color:#0000FF; background-color:#CCCCCC; } } } Safari (10.1+) CSS @media not all and (min-resolution:.001dpcm) { @media { .safari10 { color:#0000FF; background-color:#CCCCCC; } } } @media not all and (min-resolution:.001dpcm) { @media { .safari10 { color:#0000FF; background-color:#CCCCCC; } } }
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)