我通过使用以下CSS在我的所有控件,输入和textareas上放置一个内部阴影:
input {
padding: 7px;
-webkit-box-shadow: inset 2px 2px 2px 0px #dddddd;
-moz-box-shadow: inset 2px 2px 2px 0px #dddddd;
box-shadow: inset 2px 2px 2px 0px #dddddd;
}
Run Code Online (Sandbox Code Playgroud)
并且,使用其他一些样式,看起来像这样(在Firefox中,在其他浏览器中类似):

但是有助于将内容与内部阴影分开的填充会破坏滚动条周围的文本区域:
如果我删除填充,文本与阴影重叠,如下所示:

我只能在左侧添加填充,解决与左阴影的重叠但不与顶部阴影重叠,同时使滚动条看起来很好:

我也可以在任何地方添加填充,但在右侧,正确显示文本,但工具栏仍然看起来很奇怪:

有什么方法可以解决这个问题吗?
我想知道如何在android中的任何常规视图中添加阴影图层.例如:假设我有一个布局xml,显示这样的东西..
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
<Button....
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
现在当它显示时,我希望它周围有一个阴影.
我有一个自定义UIControl,我希望它有一个阴影,所以我设置相关的属性layer.视图周围会出现阴影,但阴影也会出现在a的文本下面UILabel,这是一个子视图.你怎么阻止这个?我只想要外部超视图周围的阴影.

...
init() {
label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
self.translatesAutoresizingMaskIntoConstraints = false
addSubview(label)
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor.blackColor().CGColor
self.layer.shadowOpacity = 1.0
self.layer.shadowRadius = 2.0
// Adding these lines trying to explicitly stop shadow on label...
label.layer.shadowOpacity = 0
label.layer.shadowColor = nil
...
}
Run Code Online (Sandbox Code Playgroud) 我正在使用bootstrap构建一个小网站.基本结构如下所示:
<!DOCTYPE html>
<html>
<head>
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0-wip/css/bootstrap.min.css" rel="stylesheet">
<style tpye="text/css">
.row {
height: 100px;
background-color: green;
}
.container {
margin-top: 50px;
box-shadow: 0 0 10px 10px black; /*THIS does not work as expected*/
}
</style>
</head>
<body>
<div class="container">
<div class="row">one</div>
<div class="row">two</div>
<div class="row">three</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
看到它在行动:http://jsfiddle.net/ZDCjq/
现在我希望整个网站在所有4个方面都有一个阴影.问题是,引导网格使用负边距,这使得行与阴影重叠.
有没有办法实现这一点,同时保持所有引导功能完好无损?
编辑:预期的结果是:http: //i.imgur.com/rPKuDhc.png
编辑:这个问题只出现在bootstrap 3 rc2之前.最终的bootstrap 3使得下面的解决方法已经过时了.
我正在尝试使用layer.shadowColor,Offset,Radius向UITableViewCell添加阴影,但它似乎不会以任何方式影响它.该表是分组样式.有什么想法吗?
这是我正在使用的代码:
cell.layer.shadowColor= [UIColor blackColor].CGColor;
cell.layer.shadowRadius = 5.0;
cell.layer.shadowOffset = CGSizeMake(10, 10);
Run Code Online (Sandbox Code Playgroud) 我试图在一个简单的盒子上实现内阴影效果,如: alt text http://gotinsane.com/test.jpg
绿色框是另一个框内的内容.
我的问题是,如果我给内容框任何类型的背景,外框盒阴影效果消失!
这里有一个我的问题的例子(有标记和css),我已经设置内容高度较小以证明问题 - 我真的不关心IE*,这只是一个测试.
任何的想法?
UPDATE
盒子里面的内容有点像幻灯片,这里是一个例子(原始问题).thirtydot的答案可以解决这个问题,但它迫使我做一点点破解,根据内容改变包装器背景:这里的例子(thirtydot trick).
这可以是一个解决方案,但我不喜欢它太多,仍然不明白为什么外框阴影得到内框背景(颜色,图像)
更新2
谈到另一个论坛上这个问题,我发现了另一种方式:基本上,而不是用box-shadow在包装,将作为一个面具,我使用box-shadow并border-radius直接对内容(.step元素)然而,"面具"效果正是我我试图完成,所以这不是解决方案.
我仍然不明白内部元素背景如何以及为什么干扰外部元素设计,或者为什么从外部元素掉落的阴影落在内部元素后面.这可能是一个css bug吗?
UPDATE3
有人在mozilla上打开了一个bug,得到了这个澄清"问题"的答案:
来自http://www.w3.org/TR/css3-background/#the-box-shadow:
在堆叠上下文和绘制顺序方面,元素的外部阴影直接绘制在该元素的背景下方,元素的内部阴影直接绘制在该元素的背景上方(在边框和边框图像下方,如果有的话).
特别是,元素的子元素的背景将绘制在嵌入阴影之上(实际上它们在元素本身的边框和背景之上绘制).
因此渲染正是规范所要求的.
UPDATE4
Fabio A. 用css3pointer-events指出了另一个解决方案.看起来不错,也适用于IE8;)
可能重复:
如何在android中将阴影设置为View?
在我的Android应用程序中,我需要一个带圆角的布局,背景应该有一些透明度.为此,我使用这个xml,它工作正常:
customshape.xml:
<shape android:shape="rectangle">
<gradient android:startColor="#E2FFFFFF" android:endColor="#E2D0E3E5" android:angle="270"/>
<corners android:radius="10dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
style.xml:
<style name="LinearLayoutRoundCorners">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">@drawable/customshape</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我还需要在布局的右侧和底部有一个小阴影.我找不到办法做到这一点.我已经看到了一个黑客,你把另一个布局放在后面,使它看起来像一个阴影,但这对我不起作用,因为我的布局有透明度,所以看起来不会很好.如何在不使用图像作为布局背景的情况下在布局上获得漂亮的阴影效果?
我试图取代第三方FloatingActionButton与本地一个被包装在图书馆com.android.support:design:22.2.0.The默认外观具有图像周围一个黑影,我怎样才能摆脱它?我知道前者提供了方法setShadow(),但我找不到后者的类似方法.

这是相关的XML布局:
<android.support.design.widget.FloatingActionButton
android:id="@+id/alarm_front"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_icon_alarm_notset" />
Run Code Online (Sandbox Code Playgroud)
我已将其背景颜色设置为黄色.
mAlarmBtn.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.floatButtonColor)));
Run Code Online (Sandbox Code Playgroud) 我有FrameLayout与android:elevation ="4dp".这个高度的阴影朝下.我想改变阴影的方向.
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="100dp"
android:elevation="10dp"
android:layout_marginBottom="100dp"
android:background="@color/ColorPrimary"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
</FrameLayout>
Run Code Online (Sandbox Code Playgroud) 这个问题在很多时候被问过,但我仍然找不到解决这个问题的好方法.
为什么我需要这样做?好吧,因为项目我和我的团队开发有iOS风格.
我尝试了什么?
那么有没有办法改变CardView的阴影颜色,只需对所有布局文件进行最少的编辑,并在视图外部绘制阴影,就像原始的CardView一样?
android shadow android-view android-cardview android-elevation
shadow ×10
android ×5
css ×3
html ×2
android-view ×1
background ×1
calayer ×1
cocoa-touch ×1
css3 ×1
grid ×1
ios ×1
ios8 ×1
iphone ×1
layout ×1
textarea ×1
uitableview ×1
uiview ×1
view ×1
xml ×1