GVKun编程网logo

CSS像素可以算小数吗?(css像素可以算小数吗为什么)

12

以上就是给各位分享CSS像素可以算小数吗?,其中也会对css像素可以算小数吗为什么进行解释,同时本文还将给你拓展C#计算小数、canvas像素操作、Chrome浏览器中开发工具中的px值与CSS像素值

以上就是给各位分享CSS像素可以算小数吗?,其中也会对css像素可以算小数吗为什么进行解释,同时本文还将给你拓展C# 计算小数、canvas像素操作、Chrome浏览器中开发工具中的px值与CSS像素值、CSS Calc()的替代品? LESS或SASS可以对像素计算进行百分比吗?等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

CSS像素可以算小数吗?(css像素可以算小数吗为什么)

CSS像素可以算小数吗?(css像素可以算小数吗为什么)

CSS px可以算是零头吗?标准允许吗?如果可以,主流浏览器是否支持它?

伙计们,让我们用文档来备份答案。

答案1

小编典典

是的,您可以指定小数像素。由于自从第一个版本开始就已经是CSS的一部分,因此所有完全支持CSS的浏览器都应该很好地支持它。

参考:CSS 2.1:4.3.2长度

“长度值的格式(在本规范中用表示)是(带或不带小数点),后跟一个单位标识符(例如px,em等)。”

当元素显示在屏幕上时,大多数浏览器在使用100%缩放级别时自然会将位置舍入到最接近的像素。在较高的缩放级别上,您会注意到可以识别小数像素值。

C# 计算小数

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像素操作

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像素值

Chrome浏览器中开发工具中的px值与CSS像素值

我认为您是在将窗口宽度与div#first的宽度混合在一起。

实际上是您在右上角看到的数字,即窗口的宽度。

要检查div的真实宽度,只需向下滚动到右侧的CSS即可看到它。

在下面的图片中,您可以看到 RED 屏幕的大小,并看到 GREEN div的大小。

enter image description here

因此,如果您将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>

,

我将缩放级别设置为90%,因此即使我拖动窗口以仅触摸框的右边缘,窗口的宽度也小于框的宽度(约100像素)。我对CSS非常陌生,从那时起就一直在阅读CSS像素,设备像素,缩放等。了解这些概念似乎会花费一些时间。我希望了解它们的工作原理,并在几天之内添加到此答案中。

CSS Calc()的替代品? LESS或SASS可以对像素计算进行百分比吗?

CSS Calc()的替代品? LESS或SASS可以对像素计算进行百分比吗?

我一直在寻找一种方法来进行像素计算百分比而不使用calc().我希望能够使用calc,但目前移动游猎(ios)在ios6之前不支持它.有没有办法在LESS中这样做?我知道你可以做计算,但据我所知,你不能做100% – 20px之类的事情.有什么建议?

解决方法

没有.

当我第一次发现LESS时,我花了一些时间寻找这个,我担心这是不可能的. LESS不包含渲染引擎,因此无法准确计算父元素的百分比.特别是因为父元素通常具有可变宽度.

如果父级具有固定宽度,您当然可以使用LESS为您计算像素:

@containerWidth: 500px;
.container {width: @containerWidth;}
.child {width: @containerWidth / 5;}

今天关于CSS像素可以算小数吗?css像素可以算小数吗为什么的分享就到这里,希望大家有所收获,若想了解更多关于C# 计算小数、canvas像素操作、Chrome浏览器中开发工具中的px值与CSS像素值、CSS Calc()的替代品? LESS或SASS可以对像素计算进行百分比吗?等相关知识,可以在本站进行查询。

本文标签:

上一篇CSS`url()`中的〜代字号是做什么的?

下一篇新手要多久上手seo(新手上路多久能熟练)(新手一般多久可以上手)