【问题标题】:MVC razor get div width and check for conditionMVC razor 获取 div 宽度并检查条件
【发布时间】:2015-07-07 04:27:46
【问题描述】:

我有一个应该响应的视图。我的模型有两个属性 leftPosition 和 topPosition。现在我想要如果我的外部 div 的宽度小于 714,topPosition 和 leftPosition 设置为 0,否则它们将具有以下值他们从模型中收到。但是如何检查 mvc razor 语法中的外部 div 宽度。我尝试使用 javascript 并设置 mvc razor 变量,但我发现它不可能做 asp.net 是服务器端和 javascript 这样的事情是客户端。

mvc 局部视图

@foreach (var item in Model)
{
    if (Request.Browser.ScreenPixelsWidth < 1000)
     {
        {item.TopPosition = 0;}
         {item.LeftPosition = 0;}
     }
      Html.RenderPartial(@item.TileName, @item);
    }

我想使用 ("#desktopTilesContiner").Width 之类的东西,而不是这个 Request.Browser.ScreenPixelsWidth,我可以在我的条件下使用它。在我的图像中,我有不同的图块 - 实验室、病理学、程序、药物.这些是根据它们的顶部和左侧位置设置的,但在移动设备上我只希望它们进入一列而忽略它们的顶部和左侧位置。类似于图像二。

【问题讨论】:

  • 你在这里混合了很多东西。让 c# 代码处理页面的初始呈现。并让 javascript/css 为您更新/样式化视图
  • 但是我们可以使用 javascript 设置模型值吗?我的意思是当 div 宽度小于 714 时,我应该如何在模型中将 topPosition 和 leftPosition 设置为 0
  • 为什么需要模型来保持这些值?这应该主要在你的 CSS 中维护
  • 请现在检查图像,现在请建议如何实现我想要的东西

标签: css asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

您的 Request.Browser.ScreenPixelsWidth &lt; 1000 可以通过 css 媒体查询处理,如下所示:

@media all and (max-width: 1000px) { *content here* }

我还建议不要使用position: absolute因此不需要整个顶部/左侧定位)并让 DOM 元素自然流动。

【讨论】:

  • 但是我的瓷砖实验室等具有拖放功能。另外我需要保存这些位置,以便在下次登录时向用户显示他们上次登录时保存的瓷砖位置
  • 然后你可以用position: relative 否定position: absolute 样式,用于我上面提供的媒体查询中的所有绝对定位元素 - 然后你的元素将(希望)遵循自然的 DOM 流。
猜你喜欢
  • 2014-08-27
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
相关资源
最近更新 更多