diff --git a/files/zh-cn/web/svg/element/marker/index.md b/files/zh-cn/web/svg/element/marker/index.md index a82277881045a8..c16295c227d74a 100644 --- a/files/zh-cn/web/svg/element/marker/index.md +++ b/files/zh-cn/web/svg/element/marker/index.md @@ -1,71 +1,213 @@ --- -title: marker +title: slug: Web/SVG/Element/marker --- {{SVGRef}} -`marker`元素定义了在特定的{{ SVGElement("path") }}元素、{{ SVGElement("line") }}元素、{{ SVGElement("polyline") }}元素或者{{ SVGElement("polygon") }}元素上绘制的箭头或者多边标记图形。 +**``** 元素定义了在给定 {{SVGElement("path")}}、{{SVGElement("line")}}、{{SVGElement("polyline")}} 或 {{SVGElement("polygon")}} 元素上绘制箭头或者多边标记所使用的图形。 -## 用法 - -{{svginfo}} +可以使用 {{SVGAttr("marker-start")}}、{{SVGAttr("marker-mid")}} 和 {{SVGAttr("marker-end")}} 属性将标记附着到形状上。 ## 示例 -» [marker.svg](/files/3267/marker.svg) +### 绘制箭头 -## 属性 - -### 全局属性 +以下示例展示如何在直线或者曲线路径上绘制箭头。对于曲线路径,每个点都用 {{SVGAttr("marker-mid")}} 标记绘制一个箭头。 -- [核心属性](/zh-CN/SVG/Attribute#Core) » -- [外观属性](/zh-CN/SVG/Attribute#Presentation) » -- {{ SVGAttr("class") }} -- {{ SVGAttr("style") }} -- {{ SVGAttr("externalResourcesRequired") }} -- {{ SVGAttr("viewBox") }} -- {{ SVGAttr("preserveAspectRatio") }} -- {{ SVGAttr("transform") }} - -### 专有属性 - -- {{ SVGAttr("markerUnits") }} -- {{ SVGAttr("refX") }} -- {{ SVGAttr("refY") }} -- {{ SVGAttr("markerWidth") }} -- {{ SVGAttr("markerHeight") }} -- {{ SVGAttr("orient") }} +```css hidden +html, +body, +svg { + height: 100%; +} +``` -## DOM 接口 +```html + + + + + + + -该元素实现了[`SVGMarkerElement`](/zh-CN/DOM/SVGMarkerElement) 接口。 + + + + + + +``` -## Example +{{EmbedLiveSample('绘制箭头', 200, 200)}} -### SVG +### 绘制多边标记 -```plain - - +```css hidden +html, +body, +svg { + height: 100%; +} +``` +```html + - + + + + + + + - + + + + + ``` -### Result +{{EmbedLiveSample('Drawing_polymarkers', 200, 200)}} + +### 使用 context fill 和 stroke + +以下示例展示了如何使用 `context-fill` 和 `context-stroke` 值可以让一个 marker 使用与其附加到的形状相同的填充和描边。 + +```html + + + + + + + + + + + + +``` + +```css hidden +html, +body, +svg { + height: 100%; +} +``` + +{{EmbedLiveSample('使用 context_fill_and_stroke', 200, 200)}} -{{EmbedLiveSample("Example")}} +## 属性 + +- {{SVGAttr("markerHeight")}} + - : 该属性定义了 marker 视口的高度。*值的类型*:**[\](/zh-CN/docs/Web/SVG/Content_type#长度)**;*默认值*:`3`;*动画性*:**有** +- {{SVGAttr("markerUnits")}} + - : 该属性为 `markerWidth`、`markerHeight` 和 `` 的内容定义了坐标系。*值的类型*:`userSpaceOnUse`|`strokeWidth` ;*默认值*:`strokeWidth`;*动画性*:**有** +- {{SVGAttr("markerWidth")}} + - : 该属性定义了 marker 视图的宽度。*值的类型*:**[\](/zh-CN/docs/Web/SVG/Content_type#长度)** ;*默认值*:`3`;*动画性*:**有** +- {{SVGAttr("orient")}} + - : 该属性定义了 marker 相对于它所附着到形状的方向。*值的类型*:`auto`|`auto-start-reverse`|**[\](/zh-CN/docs/Web/SVG/Content_type#角度)** ;*默认值*:`0`;*动画性*:**有** +- {{SVGAttr("preserveAspectRatio")}} + - : 该属性定义了 svg 片段在嵌入具有不同宽高比例的容器中应该如何变形。*值的类型*:(`none`| `xMinYMin`| `xMidYMin`| `xMaxYMin`| `xMinYMid`| `xMidYMid`| `xMaxYMid`| `xMinYMax`| `xMidYMax`| `xMaxYMax`) (`meet`|`slice`)? ;*默认值*:`xMidYMid meet`;*动画性*:**有** +- {{SVGAttr("refX")}} + - : 该属性定义了标记参考点的 x 的坐标。 + *值的类型*:`left`|`center`|`right`|**[\](/zh-CN/docs/Web/SVG/Content_type#坐标)** ;*默认值*:`0`;*动画性*:**有** +- {{SVGAttr("refY")}} + - : 该属性定义了标记参考点的 y 的坐标。 + *值的类型*:`top`|`center`|`bottom`|**[\](/zh-CN/docs/Web/SVG/Content_type#坐标)** ;*默认值*:`0`;*动画性*:**有** +- {{SVGAttr("viewBox")}} + - : 该属性定义了当前 SVG 片段的 SVG 视口边界。 + *值的类型*:**[\](/zh-CN/docs/Web/SVG/Content_type#t值数列)** ;*默认值*:none;*动画性*:**有** + +### 全局属性 + +- [核心属性](/zh-CN/docs/Web/SVG/Attribute/Core) + - : 最重要的:{{SVGAttr('id')}}、{{SVGAttr('tabindex')}} +- [样式属性](/zh-CN/docs/Web/SVG/Attribute/Styling) + - : {{SVGAttr('class')}}、{{SVGAttr('style')}} +- [条件处理属性](/zh-CN/docs/Web/SVG/Attribute/Conditional_Processing) + - : 最重要的:{{SVGAttr('requiredExtensions')}}、{{SVGAttr('systemLanguage')}} +- [表现属性](/zh-CN/docs/Web/SVG/Attribute/Presentation) + - : 最重要的:{{SVGAttr('clip-path')}}、{{SVGAttr('clip-rule')}}、{{SVGAttr('color')}}、{{SVGAttr('color-interpolation')}}、{{SVGAttr('color-rendering')}}、{{SVGAttr('cursor')}}、{{SVGAttr('display')}}、{{SVGAttr('fill')}}、{{SVGAttr('fill-opacity')}}、{{SVGAttr('fill-rule')}}、{{SVGAttr('filter')}}、{{SVGAttr('mask')}}、{{SVGAttr('opacity')}}、{{SVGAttr('pointer-events')}}、{{SVGAttr('shape-rendering')}}、{{SVGAttr('stroke')}}、{{SVGAttr('stroke-dasharray')}}、{{SVGAttr('stroke-dashoffset')}}、{{SVGAttr('stroke-linecap')}}、{{SVGAttr('stroke-linejoin')}}、{{SVGAttr('stroke-miterlimit')}}、{{SVGAttr('stroke-opacity')}}、{{SVGAttr('stroke-width')}}、{{SVGAttr("transform")}}、{{SVGAttr('vector-effect')}}、{{SVGAttr('visibility')}} +- ARIA 属性 + - : `aria-activedescendant`、`aria-atomic`、`aria-autocomplete`、`aria-busy`、`aria-checked`、`aria-colcount`、`aria-colindex`、`aria-colspan`、`aria-controls`、`aria-current`、`aria-describedby`、`aria-details`、`aria-disabled`、`aria-dropeffect`、`aria-errormessage`、`aria-expanded`、`aria-flowto`、`aria-grabbed`、`aria-haspopup`、`aria-hidden`、`aria-invalid`、`aria-keyshortcuts`、`aria-label`、`aria-labelledby`、`aria-level`、`aria-live`、`aria-modal`、`aria-multiline`、`aria-multiselectable`、`aria-orientation`、`aria-owns`、`aria-placeholder`、`aria-posinset`、`aria-pressed`、`aria-readonly`、`aria-relevant`、`aria-required`、`aria-roledescription`、`aria-rowcount`、`aria-rowindex`、`aria-rowspan`、`aria-selected`、`aria-setsize`、`aria-sort`、`aria-valuemax`、`aria-valuemin`、`aria-valuenow`、`aria-valuetext`、`role` + +## 使用说明 + +{{svginfo}} + +## 规范 + +{{Specifications}} ## 浏览器兼容性 {{Compat}} + +## 参见 + +- 与 marker 相关的属性:{{SVGAttr("marker-start")}}、{{SVGAttr("marker-mid")}} 和 {{SVGAttr("marker-end")}}