【问题标题】:Apply border to element only when height goes beyond 300px仅当高度超过 300 像素时才对元素应用边框
【发布时间】:2013-10-24 18:10:46
【问题描述】:

我有一个高度不固定的元素。根据其中的元素数量,它可以不断增长,但我有一个max-height: 300px; 以确保它不会超过 300。
我真正想要的是,当这个元素达到 300 像素时,一个solid 2px 边框可以出现在元素的底部(向用户发出他现在可以滚动的信号)。

你知道一个 CSS 解决方案吗?如果我必须依赖 Javascript,你会怎么做(我使用 Angular)?

【问题讨论】:

  • 你试过使用media queries吗?
  • 否,因为据我所知media queries 适用于整个窗口,而不是单个元素。我可能错了!

标签: html css angularjs


【解决方案1】:

我看到你已经在 angularjs 中添加了标签。让我们尝试为此创建一个自定义属性指令:

directive('maxHeightBorder', function(){
    return {
        restrict: 'A',
        link: function(scope, el, attr){
            if(el.height() >= attr.maxHeightBorder){
                el.css('border-bottom','2px solid');
            }
        }
    }
});

然后像这样简单地使用它:

<div max-height-border="300"> <!-- set your max height here -->
</div>

当渲染高度达到 300px 时,会出现一个2px solid border-bottom

JSFiddle: http://jsfiddle.net/7auQw/

【讨论】:

  • 它会做我想做的事,但也许是因为我对自定义指令不太熟悉,无法让它工作:/我会继续尝试
  • 有什么问题? :) 创建一个新的 .js 文件并将指令放入其中,如下所示:angular.module("yourApp").directive('maxHeightBorder')[...] - 然后将您的 js 文件包含在 index.html 中,并按照我上面的示例简单地使用自定义属性。
  • 为简单起见,我更新了我的答案。如果您仍然无法使其正常工作,请给我评论,我会尽力提供帮助。
  • 这正是我所做的 ;) 我不确定它为什么会失败,我觉得使用 Angular 进行调试仍然很痛苦:/
  • 我的元素是
      而不是 div,这是我看到的唯一主要区别。我不知道如何在评论部分粘贴代码块。
猜你喜欢
  • 1970-01-01
  • 2021-04-13
  • 2021-11-17
  • 1970-01-01
  • 2013-08-11
  • 2014-07-10
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
相关资源
最近更新 更多