宽度计算返回错误值

时间:2017-02-16 12:15:59

标签: css

我试图计算css中的宽度,但似乎返回了错误的值。

.item1 {
    width: -o-calc((50%) - (2px));
    width: -moz-calc((50%) - (2px));
    width: -webkit-calc((50%) - (2px));
    width: calc((50%) - (2px));
    background-color: #e4e4e4;
    float: left;
    margin-right: 2px;
}

我还尝试过以下方法:

width: calc(50% - 2px);
width: calc(~"50% - 2px");

他们都返回width: 48%

有人可以告诉我我做错了什么。

我正在现场和本地主机上进行测试,两者都存在问题"我正在使用FirefoxChromeIE

这就是我得到的:

enter image description here

3 个答案:

答案 0 :(得分:0)

在我看来,你正在使用某种CSS预处理器(LESS,SASS可能?),它修改了calc的参数。否则,以下语法应该可以正常工作:

width: calc(50% - 2px);

然而,在LESS例如,您必须转义参数,因为LESS会自己进行计算。所以在LESS中它将是:

width: ~"calc(50% - 2px)";

答案 1 :(得分:0)

我认为您发布的图片中显示的内容(浏览器工具屏幕截图)不是您在上面发布的CSS规则,而是另一条规则:.Frontpage-LeftSide .nyhead.item1

calc规则通常在浏览器工具中显示与CSS中编写的完全相同,而不是计算值。似乎这条规则覆盖了你的规则(可能是由于CSS的特殊性)。

P.S。:如果你使用less,你必须写width: ~'calc(50% - 2px)';(更正:添加引号)

答案 2 :(得分:0)

以下代码在chrome中运行良好:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="8dp"
    android:paddingBottom="8dp"
    android:paddingRight="8dp"
    android:paddingLeft="@dimen/activity_horizontal_margin">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/item_text"
        android:layout_gravity="center_vertical"/>
    <Button
        android:id="@+id/item_button_undo"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="@string/button_undo_text"
        android:layout_gravity="end|center_vertical"
        style="@style/Base.Widget.AppCompat.Button.Borderless"/>
</FrameLayout>

我试图增加px值,它反映在像素上而不是%。