以上就是给各位分享CSS像素可以算小数吗?,其中也会对css像素可以算小数吗为什么进行解释,同时本文还将给你拓展C#计算小数、canvas像素操作、Chrome浏览器中开发工具中的px值与CSS像素值
以上就是给各位分享CSS像素可以算小数吗?,其中也会对css像素可以算小数吗为什么进行解释,同时本文还将给你拓展C# 计算小数、canvas像素操作、Chrome浏览器中开发工具中的px值与CSS像素值、CSS Calc()的替代品? LESS或SASS可以对像素计算进行百分比吗?等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- CSS像素可以算小数吗?(css像素可以算小数吗为什么)
- C# 计算小数
- canvas像素操作
- Chrome浏览器中开发工具中的px值与CSS像素值
- CSS Calc()的替代品? LESS或SASS可以对像素计算进行百分比吗?
CSS像素可以算小数吗?(css像素可以算小数吗为什么)
CSS px
可以算是零头吗?标准允许吗?如果可以,主流浏览器是否支持它?
伙计们,让我们用文档来备份答案。
答案1
小编典典是的,您可以指定小数像素。由于自从第一个版本开始就已经是CSS的一部分,因此所有完全支持CSS的浏览器都应该很好地支持它。
参考:CSS 2.1:4.3.2长度
“长度值的格式(在本规范中用
表示)是 (带或不带小数点),后跟一个单位标识符(例如px,em等)。”
当元素显示在屏幕上时,大多数浏览器在使用100%缩放级别时自然会将位置舍入到最接近的像素。在较高的缩放级别上,您会注意到可以识别小数像素值。
C# 计算小数
private void button2_Click(object sender, EventArgs e)
{
double a = 0;
List<string> list = new List<string>();
for (int i = 0; i < 100; i++)
{
a += 0.1;
list.Add(a.ToString("#0.0"));
}
List<int> list_int = new List<int>();
for (int i=0;i<list.Count;i++)
{
//var t = list[i];
//var t1 = Convert.ToInt32(t); //报错// 报错原因 var t1 = Convert.ToInt32("1.1"); //
list_int.Add((int)Convert.ToDouble(list[i]));
}
var t1 = Convert.ToDouble("1.5");
var t2 = Convert.ToDouble("2.5");
var t3 = Convert.ToDouble("3.5");
var t = (int)(t1 + t2 + t3);
var t0 = (int)t1 + (int)t2 + (int)t3;
//1.5 2.5 3.5
//1...= 1+2+3 = 6;
//2...=7.5 =7;
}
}
canvas像素操作
我们可以通过ImageData对象操纵像素数据,直接读取或将数据数组写入该对象中
ImageData对象中存储着canvas对象真实的像素数据,包含以下几个只读属性
width : 图片宽度 ,单位是像素
height: 图片高度,单位是像素
data:Uint8ClampedArray (8为无符号整型固定数组)类型的一维数组,包含着GRBA格式的整型数据,范围在0至255之间(包括255)data属性可以被使用作为查看初始像素数据。每个像素用4个1bytes的值来代表(RGBA格式,红色R的索引是0位置),像素的索引也是从0开始
例如,要读取图片汇总位于第50行,第200列的像素的蓝色部分,是下面的代码
blueComponent = imageData.data[((50-1)*imageData.width + (200-1))*4 - 1 + 3]
解释:(50-1)*imageData.width 指49行总共的像素数,(200-1)第50行的像素数,减1的原因是像素的索引也是从0开始
公式:imageData.data[((行数-1)*imageData.width + (列数-1))*4 - 1 + 1/2/3/4];获取Uint8ClampedArray 的长度
var numBytes = imageData.data.length;
如何创建一个ImageData对象?
var myImageData = ctx.createImageData(width,height)
上面代码创建了一个新的具体特定尺寸的ImageData对象。所有像素被预设为透明黑
你也可以创建一个被anotherImageData对象指定的相同像素的ImageData对象。这个新的对象像素全部被预设为透明黑。这个并非复制了图片数据
var myImageData = ctx.createImageData(anotherImageData)
如何得到场景像素数据?
var myImageData = ctx.getImageData(left,top,width,height),坐标点形成坐标空间元素
注意:任何在画布以外的元素都会被返回成一个透明黑的ImageData对象
在场景中写入像素数据
你可以用putImageData()方法去对场景进行像素数据的写入
ctx.putImageData(myImageData,dx,dy)
图片灰度和反相颜色
这下面这个例子里,我们遍历所有像素以改变他们的数值,然后我们将被修改的像素数组通过putImageData()放回到画布中去
完整的反相颜色与图片灰度的例子:
<body >
<canvas id="canvas" width="600" height="300"></canvas>
<button id="invertBtn"> 反色 </button>
<button id="grayscalebtn"> 灰色 </button>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
var img = new Image();
img.src = ''images/rhino.jpg'';
img.onload=function(){
draw(this)
};
function draw(img) {
var canvas = document.getElementById("canvas");
var ctx=canvas.getContext("2d");
ctx.drawImage(img,0,0);
img.style.display = "none";
var imageData = ctx.getImageData(0,0,canvas.width,canvas.height);
var data = imageData.data;
var invert = function() {
for(var i =0;i<data.length;i+=4){
data[i]=255-data[i];
data[i+1] = 255-data[i+1];
data[i+2] = 255-data[i+1]
}
ctx.putImageData(imageData,0,0)
};
var grayscale = function() {
for(var i=0;i<data.length;i+=4) {
var avg = (data[i]+data[i+1]+data[i+2])/3;
data[i] = avg;
data[i+1] = avg;
data[i+2] = avg
}
ctx.putImageData(imageData,0,0)
};
var invertbtn = document.getElementById("invertBtn");
invertbtn.addEventListener("click",invert);
var grayscalebtn = document.getElementById("grayscalebtn");
grayscalebtn.addEventListener("click",grayscale)
}
</script>
</body>
查看效果
Chrome浏览器中开发工具中的px值与CSS像素值
我认为您是在将窗口宽度与div#first
的宽度混合在一起。
实际上是您在右上角看到的数字,即窗口的宽度。
要检查div的真实宽度,只需向下滚动到右侧的CSS即可看到它。
在下面的图片中,您可以看到 RED 屏幕的大小,并看到 GREEN div的大小。
因此,如果您将div的高度设置为比屏幕尺寸大得多,高度也会发生变化。
演示:
#first {
background-color: blueviolet;
width:1200px;
}
<div id='first'>
<p>The img element tells the browser,“Place an image here.” You’ve already gotten
a glimpse of it used to place banner graphics in the examples in Chapter
4,Creating a Simple Page. You can also place an image element right in the
flow of the text at the point where you want the image to appear,as in the
following example. Images stay in the flow of text,aligned with the baseline
of the text,and do not cause any line breaks (HTML5 calls this a phrasing
element),as shown in FIGURE 7-2:</p>
</div>