小编Mar*_*cki的帖子

嵌套最小高度不起作用

我有一个固定大小的绝对定位区域,其中滚动条包含可变大小的内容。

现在我需要将内容包装在两个 div 中,这两个 div 至少与区域一样大,但会扩展以适合内容。

<div id="area">
    <div id="outer">
        <div id="inner">
            <div id="content">content</div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

要求:

  1. 它们需要扩展,因此它们的高度必须设置为自动。
  2. 为了填充容器,其最小尺寸必须为 100%

因此我尝试了以下CSS(JsFiddle中的完整示例):

#area {
    /* defined outside */
    position: absolute;
    width: 100%;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    overflow: scroll;
}

#outer, #inner {
    min-width: 100%;
    min-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

它确实有效,#outer但对 没有影响#inner。我该如何解决它?

更新 如果有帮助的话我只对 Chrome 感兴趣。

另外,我可以接受,如果指出一些带有解释的权威来源,这可能是不可能的。

更新2

所以我分析了CSS规范并得出结论,我的要求无法满足:

  1. 为了使 min-height 工作,它必须绝对定位,或者它包含的块高度不能依赖于内容高度CSS2(10.7)

  2. 我需要自动调整大小,所以既不能#inner#outer不能绝对定位。这意味着包含块必须具有指定的高度。

  3. 因此#outer不能包含 的块#inner。这给我留下了#area …

html css

6
推荐指数
1
解决办法
2392
查看次数

C#中的泛型值相等(标识)

比较相同泛型类型的两个实例的最佳(最简洁和最佳)方法是什么,以便比较标识(相同对象,因此不调用)和值相等的类型的引用类型.Equals

目前我这样做:

static bool IdentityEquals<T>(T x, T y)
{
    return typeof(T).IsValueType
        ? EqualityComparer<T>.Default.Equals(x, y)
        : ReferenceEquals(x, y);
}
Run Code Online (Sandbox Code Playgroud)

c# generics

5
推荐指数
1
解决办法
496
查看次数

LoadedEvent的路由事件类处理程序对大多数类都不起作用

我正在尝试为所有Loaded事件注册处理程序:

EventManager.RegisterClassHandler(typeof(UIElement), FrameworkElement.LoadedEvent, new RoutedEventHandler(OnRoutedEvent), true);
EventManager.RegisterClassHandler(typeof(ContentElement), FrameworkContentElement.LoadedEvent, new RoutedEventHandler(OnRoutedEvent), true);
EventManager.RegisterClassHandler(typeof(UIElement), FrameworkElement.UnloadedEvent, new RoutedEventHandler(OnRoutedEvent), true);
EventManager.RegisterClassHandler(typeof(ContentElement), FrameworkContentElement.UnloadedEvent, new RoutedEventHandler(OnRoutedEvent), true);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我的处理程序只被调用Window和DatePicker的后代.它不适用于任何其他类型.

谁能解释这种行为?这是一个错误,遗憾的是他们选择忽略它.

是否有其他方式可以通知应用程序/窗口中的任何新元素?

wpf event-handling routed-events

4
推荐指数
1
解决办法
1174
查看次数

具有多个值的Ant属性,每个值在单独的行上

我有一个属性,必须包含很长的字符串列表,并提高可读性我想在单独的行中定义每个值(很长),如:

<property name="items" separator=",">
   <item>A</item>
   <item>B</item>
</property>
Run Code Online (Sandbox Code Playgroud)

相当于

<property name="items" value="A,B" />
Run Code Online (Sandbox Code Playgroud)

或类似于<path>+ <pathconvert>但不扩展路径的东西.

可能吗 ?

ant

3
推荐指数
1
解决办法
2842
查看次数

Powershell功能处理或中止处理程序

我有一个管道函数,它在begin块中分配一些需要在最后处理的资源.我已尝试在end块中执行此操作但在函数执行中止时不会调用它,例如ctrl+ c.

如何修改以下代码以确保$sw始终处置:

function Out-UnixFile([string] $Path, [switch] $Append) {
    <#
    .SYNOPSIS
    Sends output to a file encoded with UTF-8 without BOM with Unix line endings.
    #>
    begin {
        $encoding = new-object System.Text.UTF8Encoding($false)
        $sw = new-object System.IO.StreamWriter($Path, $Append, $encoding)
        $sw.NewLine = "`n"
    }
    process { $sw.WriteLine($_) }
    # FIXME not called on Ctrl+C
    end { $sw.Close() }
}
Run Code Online (Sandbox Code Playgroud)

编辑:简化功能

powershell cmdlets

3
推荐指数
1
解决办法
704
查看次数

使用通配符将 itemgroup 转换为另一个 itemgroup

我在目标中定义了一个目录列表:

<Target>
  <ItemGroup>
    <FooDirs Include="Foo\Dir1" />
    <FooDirs Include="Foo\Dir2" />
  </ItemGroup>
<Target>
Run Code Online (Sandbox Code Playgroud)

现在我想在里面创建所有文件的列表@(FooDirs)

<ItemGroup>
  <FooFiles Include="@(FooDirs -> '%(Identity)\**\*')" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,结果列表包含文字字符串:"Foo\Dir1\**\*;Foo\Dir2\**\*". 但是,如果我使用已弃用的<CreateItem>任务,它可以正常工作:

<CreateItem Include="@(FooDirs -> '%(Identity)\**\*')">
  <Output TaskParameter="Include" ItemName="FooFiles" />
</CreateItem>
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是我错过了什么?

xml msbuild

2
推荐指数
1
解决办法
935
查看次数

具有虚拟方法的 Rust 单例

如何通过动态调度来表示一堆实现相同特征的不可变无状态单例?

类型/值在编译时不会被知道,因此需要虚拟方法。

理想情况下,所有值都形成可区分的联合,但我已经知道不可能在 Rust 中实现枚举值。

即相当于以下 Scala 代码:

sealed trait Kind {
  def name(): String
}

object A extends Kind {
  def name() = "A"
}

object B extends Kind {
  def name() = "B"
}

def use(x: Kind) = {
  println(s"Kind is ${x.name()}")
}

def main() = {
  use(A)
}
Run Code Online (Sandbox Code Playgroud)

对于不了解 Scala 的人 - 上面的示例仅分配 2 个对象,然后传递一个引用(简单指针)。

我想出了这样的东西,但发现它很糟糕:

trait Kind {
  fn name(&self) -> String;
}

struct A;
struct B;

impl Kind for A {
  fn name(&self) -> String …
Run Code Online (Sandbox Code Playgroud)

rust

-1
推荐指数
1
解决办法
125
查看次数

标签 统计

ant ×1

c# ×1

cmdlets ×1

css ×1

event-handling ×1

generics ×1

html ×1

msbuild ×1

powershell ×1

routed-events ×1

rust ×1

wpf ×1

xml ×1