调整媒体查询无效的项目

时间:2012-08-30 07:57:26

标签: css media-queries

我正在构建一个必须在“小”屏幕(1024 * 768)或更高分辨率屏幕上工作的应用程序。

我在应用程序中有一个页面,其中包含两列中的一些项目。但是在“小”屏幕上,项目的宽度太大而无法保持良好的布局,因此我希望将列数减少到一个。这些列使用<ul>构建,其中包含<li> float:left属性(这实际上是一个jQuery Sortable插件输出)。

我对页面的行为是允许用户在“源”列表和“目标”列表之间拖放项目以便选择项目(这是有效的,如果可以帮助,我可以粘贴代码)。

要解决此问题,我尝试设置媒体查询。

在我的css文件中,我有:

.sourceItems, .targetItems {
    list-style-type: none;
    float: left;
    margin: 0;
    padding: 0;
    margin-right: 10px;
    background: #eee;
    padding: 5px;
    border: solid 1px black;
    height: 400px;
    overflow: auto;
}

.sourceItems {
    width: 530px;
}

.targetItems {
    width: 280px;
}

    .sourceItems li, .targetItems li {
        border: solid 1px black;
        float: left;
        margin: 4px;
        padding: 4px;
        width: 220px;
        min-height: 10px;
        cursor: move;
        background-image: url('/_layouts/images/personresult.gif') !important;
        background-repeat: no-repeat !important;
        padding-left: 20px;
        background-color: #DFEFFC;
        background-position: left center !important;
    }

        .sourceItems li.user, .targetItems li.user {
        }

        .sourceItems li.entity, .targetItems li.entity {
            background-position: left center;
            border: solid 1px black;
            float: left;
            margin: 4px;
            padding: 4px;
            width: 200px;
            background-image: url('/_layouts/images/peopletitle.png') !important;
            font-size: 1.1em;
            height: 50px;
            cursor: move;
            padding-left: 40px;
            background-color: #CCFF99;
            background-repeat: no-repeat !important;
            vertical-align: middle;
        }

@media screen and (max-width: 1024) {
    .sourceItems {
        width: 200px;
    }

    .targetItems {
        width: 200px;
    }

        .sourceItems li, .targetItems li {
            margin: 2px;
            padding: 2px;
            width: 180px;
            min-height: 10px;
            background-image: url('/_layouts/images/personresult.gif') !important;
            -moz-background-size: 50%;
            -o-background-size: 50%;
            -webkit-background-size: 50%;
            background-size: 50%;
            background-repeat: no-repeat !important;
            padding-left: 10px;
            font-size: 1.1em;
        }

            .sourceItems li.user, .targetItems li.user {
            }

            .sourceItems li.entity, .targetItems li.entity {
                -moz-background-size: 50%;
                -o-background-size: 50%;
                -webkit-background-size: 50%;
                background-size: 50%;
                margin: 2px;
                padding: 2px;
                width: 180px;
                background-image: url('/_layouts/images/peopletitle.png') !important;
                font-size: 1.1em;
                height: 30px;
                padding-left: 20px;
            }
}

但是,当页面加载(元素总是两列大)时,这没有区别。

不知道它是否可以提供帮助,但这里是DOM的转储(来自IE开发人员工具):

<UL class="sourceItems droptrue ui-sortable" jQuery172019945692622544986="151">
  <LI class="ui-state-default entity" jQuery172019945692622544986="75">some item 1</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="76">some item 2</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="77">some item 3</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="78">some item 4</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="79">some item 5</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="80">some item 6</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="81">some item 7</LI>
  <LI class="ui-state-default entity" jQuery172019945692622544986="82">some item 8</LI>
</UL>
<UL class="targetItems droptrue ui-sortable" jQuery172024919617247411335="152"></UL>

以下是带有“大屏幕”的输出的屏幕截图:

On a large screen

以下是带有“小屏幕”输出的屏幕截图:

On a small screen

以下是“小屏幕”上所需输出的屏幕截图(使用IE开发工具调整dom以生成屏幕截图:

Desired result

我很感激任何有助于解决此问题的帮助。

1 个答案:

答案 0 :(得分:1)

中缺少长度前缀px/cm/in
@media screen and (max-width: 1024) {
                              ^^^^ // Missing px   

DEMO - (不工作)

应该是:

@media screen and (max-width: 1024px) {
                                  ^^ // Added px

DEMO - (工作)

SEE REFERENCE