这可能是已经解决了几十次的事情的变化,但CSS真的让我觉得自己像个傻瓜.
我正在尝试构建一个可以通过各种方式定位和调整大小的小部件.这是一个非常简单的布局 - 固定高度的标题,固定高度的页脚,以及占据剩余空间的主体.整体宽度和高度各不相同.身体的内容需要滚动.我有整体容器,页眉,页脚和身体尺寸确定.
但我想要的是身体在需要时滚动当滚动条出现时不向左缩小内容.也就是说,我希望身体尽可能宽,以便滚动它所需的滚动条,这样当它需要滚动时就没有收缩.实际上,我想要这个:
| - - - unknown width - - -|
+--------------------------+
| content |*|
| might |*|
| scroll |*|
+--------------------------+
Run Code Online (Sandbox Code Playgroud)
我希望可以滚动的内容尽可能宽,以减少潜在的滚动条宽度(|*|区域).
我现在拥有的是这样的:
<div id="content" style="position: absolute; overflow-y: auto; width: 100%">
<div id="scrollContent" style="???">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了边距,填充,甚至是最内部div的%-width和所有"做转移"的事情.我还需要这个在FF3,IE7/8和(幻想?)IE6中工作.
我80%肯定我不应该问这个问题,因为它可能会被认为是否定的,我的意思是不会对任何人不尊重,特别是本书的作者.我看过几篇推荐本书及其配套项目的帖子.我没看过这本书,但今天我花了几个小时研究这个项目.虽然看起来非常完整,但我很难分清各种各样的细节.我在自己的设计中苦苦挣扎,如果一个实体发生变化,我必须改变多少,而这个项目并没有让我感到非常舒服.
例如,有一个继承自Person的Employee对象.Person有一个带有名字,姓氏等的构造函数,因此Employee也是如此.私人雇员是名字,姓氏和公共财产的成员.
有一个EmployeeFactory,它知道Employee和Person属性,以及SQL列名称(从读取器中提取值).
有一个带有未实现的PersistNewItem和PersistUpdatedItem方法的EmployeeRepository我怀疑,如果实现的话,将为INSERT和UPDATE语句构建SQL,就像我在CompanyRepository中看到的那样.这些将属性写入字符串以构建SQL.
有一个'数据契约'PersonContract具有与Person相同的私有成员和公共属性,而EmployeeContract继承自PersonContract,如Employee,Person,具有镜像实体的公共属性.
有一个静态的"Converter"类,其中包含将实体映射到Contracts的静态方法
EmployeeContract ToEmployeeContract(Employee employee)
Run Code Online (Sandbox Code Playgroud)
它将字段从一个复制到另一个,包括Person字段.可能有另一种方式的伴侣方法 - 不确定.
我认为也有单元测试.
总而言之,我计算了5-10个类,方法和构造函数,其中包含有关实体属性的详细知识.也许他们是自动生成的 - 不确定.如果我需要向Person添加"Salutation"或其他属性,我将不得不调整所有这些类/方法?我确定我会忘记一些事情.
同样,我的意思是没有不尊重,这似乎是本书的一个非常详尽的例子.这是DDD的完成方式吗?
如果人们认为这已被打死,我会提前道歉.我刚刚花了几个小时在这里搜索和阅读很多优秀的帖子,但我仍然感到困惑.
我混淆的根源是DTO与DDD和存储库.我希望我的POCO域对象具有智能,我想从存储库中获取它们.但似乎我必须违反一些封装规则才能使其工作,而且似乎它可以将DTO转变为他们的头脑.
这是一个简单的例子:在我们的目录应用程序中,Part可以是包含许多其他部分的包.因此,Part POCO有一个'GetChildren()'方法返回IEnumerable <Part>是有道理的.它甚至可能会在列表中出现其他内容.
但该清单如何解决?似乎存储库就是答案:
interface IPartRepository : IRepository<Part>
{
// Part LoadByID(int id); comes from IRepository<Part>
IEnumerable<Part> GetChildren(Part part);
}
Run Code Online (Sandbox Code Playgroud)
和
class Part
{
...
public IEnumerable<Part> GetChildren()
{
// Might manipulate this list on the way out!
return partRepository.GetChildren(this);
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我的目录的使用者除了(正确地)从存储库加载部件之外,还可以通过直接调用GetChildren(部分)来绕过一些部分封装的逻辑.不是那么糟糕吗?
我读到存储库应该提供POCO,但DTO适用于在层之间传输数据.计算了许多零件属性 - 例如,价格是根据复杂的定价规则计算的.价格甚至不会来自存储库的DTO - 因此将定价数据传递回Web服务似乎需要DTO使用Part,而不是相反.
这已经太长了.拧开我的头在哪里?
我正在喝coolade并喜欢它 - 接口,IoC,DI,TDD等等.运作得很好.但我发现我必须努力使一切都成为界面!我有一个工厂,这是一个接口.它的方法返回可能是接口的对象(可能使测试更容易).这些对象是他们所需服务的DI接口.我发现保持接口与实现同步是为了增加工作 - 向类添加方法意味着将它添加到类+接口,模拟等.
我是否过早地将接口分解出来?有什么最好的做法可以知道什么时候应该返回一个接口而不是一个对象?
有没有办法构建一个URL的链接,强制浏览器忽略它可能对该URL的任何缓存?
我们有一些网站最近几年静态内容后发生了变化.用户单击快捷方式,收藏夹或键入URL到这些站点并获取旧的缓存内容.我希望有一个页面链接到同一个URL但强制浏览器获取新内容.
那可能吗?跨浏览器?
我正在把这头发拉出来.
我们刚刚开始对我们的网站进行大修.作为最后一步,我们试图将所有字形和图标包装成精灵.它们都是透明的.png,所以精灵也是如此.似乎如果背景来自讽刺,IE会扭曲它.如果它来自原始文件,则不会.FF和Chrome无论如何都很好.
我正在查看orignal图像和sprited版本与网格并排查看像素是相同的.我已多次计算精灵中的像素,以确保我使用正确的坐标.我的CSS看起来像这样:
XXbackground: url(sprite.png) no-repeat 0px -837px; /* lozRedRedSpacer */
background: url(lozRedRedSpacer.png) no-repeat;
Run Code Online (Sandbox Code Playgroud)
'XX'让我来回切换.使用单文件版本,它看起来很完美:
.精灵版看起来像这样:
.看起来它在纵向和横向都是"压扁"的.在FF或Chrome中不会发生这种情况.
有任何想法吗?
编辑我能够消除大部分噪音,并在这里发布一个例子.我在示例中添加了注释来描述我的问题.
非常感谢你花时间看看这个!
更新我们已经用CSS伪类替换了这些"重叠的分割器图像",它们确实重叠并且缩放问题似乎已经消失.当然,现在我们遇到了新的问题 - IE8错误地导致了z-order,IE7根本不理解伪元素.但至少标记更简单,缩放问题就消失了.
我们的网络服务器上有一个图像文件夹,我们可以通过 CDN 发布它。有时我们将类似查询字符串的语法附加到 URL 以帮助我们更新已更改的内容,即使它很少这样做。例子:
/images/file.png?20090821
Run Code Online (Sandbox Code Playgroud)
这样的 URL 是否适用于您的平均内容交付网络?
Windows 4.5 x64上的.NET 4.5.2,IIS 8.5.我在/ localhost /有一个ASP.NET网站.DEFAULT网站已禁用,新网站使用正确的绑定创建.我正在尝试将其预编译到位:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_compiler -c -v /
error ASPRUNTIME: Failed to map the path '/'.
Run Code Online (Sandbox Code Playgroud)
我尝试了元数据库路径路由:
aspnet_compiler -c -m lm/w3svc/2/root
error ASPRUNTIME: Failed to map the path '/'.
Run Code Online (Sandbox Code Playgroud)
我可以通过指定物理路径来编译它,但我不想这样做,因为同一个应用程序存在于具有不同物理路径(开发,QA,生产)的不同服务器上.甚至配置数据库路径都不相同."/"到处都是一样的.
为了笑容,我把它添加到网站的一个页面,以确保我没有失去理智:
Response.Write(Server.MapPath("/"));
Run Code Online (Sandbox Code Playgroud)
得到了我的预期.
我究竟做错了什么?
我有两个POCO类型,A和B.我有一个存储库,每个,Rep <A>和Rep <B>,它们都实现了由IoC容器(在这种情况下为AutoFac)提供的IRep <A>和IRep <B>.
有几种存储库 - 来自数据库(或其他)的按需加载,延迟加载的内存中集合,缓存的Web服务结果等.调用者无法区分.Rep <A>和Rep <B>碰巧都是内存中的集合,因为A和B的变化不大并且活很长时间.
B的一个属性是A.我现在做的是,当B要求它的A时,B得到IRep <A>找到它的A并返回它.它每次都这样做 - 每次请求B的A都涉及IRep <A> .Find().好处是B从不持有A,每个请求都考虑到Rep的状态.缺点是很多IoC/IRep <A>流失.
我正在考虑在<T这里使用Lazy >模式,这样B就会询问IRep <A>一次并保持它所得到的.但是如果A从其存储库中删除会发生什么?
我正在为Rep <A> 寻找一个干净的方式来通知任何感兴趣的人.在我的例子中,可能会删除某个B的A,所以我希望Rep <A>在删除或添加某些内容时引发事件等.Rep <B>可能会订阅此事件以清除任何引用A的B.现在已经消失,等等如何连线?
理想情况下,实例化Rep <A> 时没有任何变化.它应该不知道谁在听,A可能会整天被操纵而不会激活一个Rep.
但是当Rep <B>诞生时,它需要一种方式来订阅Rep <A>的事件.可能还没有Rep <A> alive,但肯定会有一个B被要求它的A,所以似乎可以启动一个Rep <A>.
在本质上,当Rep <B>被实例化时,它希望它使用Rep <A>为事件通知注册自己.我不想污染IRep <T>接口,因为这对于Repository层之外的任何人都无关紧要.其他类型的存储库可能根本不用担心这个问题.
这有意义吗?
domain-driven-design repository inversion-of-control autofac
我理解'邻近选择器'+
我想要做的是根据div两侧的类来改变元素的样式.例如:
<div class="positive">...</div>
<div class="divider"></div>
<div class="negative">...</div>
Run Code Online (Sandbox Code Playgroud)
"正面"和"负面"类具有不同的背景和分配可能会根据用户交互等进行更改.我希望div.divider根据其两侧的div类选择背景.我们有从正面到负面,从负面到正面,从位面到位面,从负面到负面等"过渡"的分频器.有更多的状态,这些只是例子.
这个想法是当JS改变div.divider两侧的div类时我想改变divider的样式(主要是背景).
这可能吗?