sinevik Asked:2020-03-15 01:48:46 +0000 UTC2020-03-15 01:48:46 +0000 UTC 2020-03-15 01:48:46 +0000 UTC 简单的svg编辑器[关闭] 772 这个世界上是否有像绘画一样的简单 svg 编辑器?画一个简单的图画 请帮帮我 svg 1 个回答 Voted Best Answer Варлам Ерофеич 2020-05-19T21:12:15Z2020-05-19T21:12:15Z 我最常使用draw.io,它是俄语的。 更多在线编辑: 矢量图形在线编辑(收藏) 并帮助将svg上的文章从MDN翻译成俄语,我悄悄地学习自己。 啊,是的,前几天我从一个叔叔那里偷了一个很酷的贝塞尔曲线编辑器,然后把它翻译成他自己的语言。(是英文的) @use postcss-cssnext; @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600); :root { --ad-Color-sec: #0da; --ad-Color-hov: linear-gradient(to top, #044, #088, #044); --ad-Color-del: linear-gradient(to top, #222, #666, #222); --ad-Color-prim: #111; --ad-Color-foot: #122; } html { font-size: 16px; font-family: "Open Sans", sans-serif; } html, body { height: 100%; } .ad-no {text-transform: none;} .ad-App { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; } /* основной макет */ .ad-Container { height: 100%; width: 100%; display: flex; background: #fff; } .ad-Container-main { height: 100%; flex: 1; display: flex; flex-direction: column; } .ad-Container-svg { height: 100%; flex: 1; display: flex; align-items: center; justify-content: center; background: #f3f3f3; background-image: linear-gradient(to top, #ddd, #f3f3f3, #ddd); } .ad-Container-controls { overflow: hidden; display: flex; flex-direction: column; height: 100%; width: 20rem; background: var(--ad-Color-prim); } .ad-Container-controls ::-webkit-scrollbar { width: 6px; } .ad-Container-controls ::-webkit-scrollbar-thumb { border-radius: 30px; background: rgba(255, 255, 255, .3); } .ad-Foot { padding: 1.5rem 2rem; display: flex; background: #fff; border-top: 2px solid #eee; } .ad-Foot-list { flex: 1; } .ad-Foot-item { text-transform: uppercase; font-size: .7rem; color: var(--ad-Color-foot); } .ad-Foot-item + .ad-Foot-item { margin-top: .5rem; } .ad-Foot-highlight { padding-bottom: .04rem; border-bottom: 2px solid var(--ad-Color-sec); font-weight: bold; } .ad-Foot-meta { margin-left: 2rem; text-align: right; line-height: 1.4; font-size: .7rem; color: var(--ad-Color-prim); } .ad-Foot-meta a { text-decoration: underline; color: var(--ad-Color-prim); } .ad-SVG { display: block; background: #fff; border-radius: 4px; } .ad-Grid { fill: none; stroke: #eee; stroke-width: 1px; } .ad-Grid.is-hidden { opacity: 0; } .ad-Path { fill: none; stroke: #555; stroke-width: 4px; stroke-linecap: round; } .ad-Point { cursor: pointer; fill: #fff; stroke: #555; stroke-width: 5px; transition: fill .2s; } .ad-Point:hover, .ad-PointGroup.is-active .ad-Point { fill: var(--ad-Color-sec); } .ad-PointGroup--first .ad-Point { stroke: var(--ad-Color-sec); } .ad-Anchor { opacity: .5; } .ad-PointGroup.is-active .ad-Anchor { opacity: 1; } .ad-Anchor-point { cursor: pointer; fill: #fff; stroke: #888; stroke-width: 5px; } .ad-Anchor-line { stroke: #888; stroke-width: 1px; stroke-dasharray: 5 5; } /* управление справа */ .ad-Controls { overflow: auto; flex: 1; padding: 2rem; } .ad-Controls :first-child { margin-top: 0; } .ad-Controls-title { margin: 1rem 0; font-size: .8rem; font-weight: bold; color: #fff; } .ad-Controls-container { display: flex; } .ad-Controls-container + .ad-Controls-container { margin-top: 1rem; } .ad-Control { flex: 1; } .ad-Control-label { display: block; margin-bottom: .5rem; /*text-transform: uppercase;*/ font-size: .7rem; font-weight: bold; color: color(var(--ad-Color-prim) l(+75%)); } .ad-Result { height: 5rem; padding: 1rem; background: var(--ad-Color-foot); box-shadow: 0 -5px 10px rgba(0, 0, 0, .4); } .ad-Result-textarea { height: 100%; width: 100%; resize: none; border: none; background: none; text-transform: uppercase; font-family: "Open Sans", sans-serif; font-size: .7rem; font-weight: bold; line-height: 1.8; color: #fff; } .ad-Result-textarea:focus { outline: 0; } /* элементы управления */ .ad-Button { padding: .8rem 1rem; background: var(--ad-Color-del); border: none; border-radius: 25px; cursor: pointer; transition: background .2s; /*text-transform: uppercase;*/ font-family: "Open Sans", sans-serif; font-weight: bold; font-size: 1rem; letter-spacing: .08rem; color: #fff; } .ad-Button:focus, .ad-Button:hover { outline: 0; background: var(--ad-Color-hov); } .ad-Button--delete { background: var(--ad-Color-del); } .ad-Button--delete:focus, .ad-Button--delete:hover { background: color(var(--ad-Color-hov) l(+2%)); } .ad-Button--reset { background: var(--ad-Color-del); } .ad-Button--reset:focus, .ad-Button--reset:hover { background: color(var(--ad-Color-hov) l(+2%)); } .ad-Text { height: 18px; width: 2rem; background: color(var(--ad-Color-prim) l(+10%)); border: none; border-radius: 4px; text-align: center; font-family: "Open Sans", sans-serif; font-size: .6rem; color: #fff; } .ad-Text:focus { outline: 0; background: color(var(--ad-Color-prim) l(+20%)); } .ad-Checkbox-input { display: none; } .ad-Checkbox-fake { position: relative; height: 14px; width: 2rem; background: color(var(--ad-Color-prim) l(+10%)); border-radius: 30px; } .ad-Checkbox-fake::after { content: ""; box-sizing: border-box; display: block; position: absolute; top: -2px; left: 0; height: 18px; width: 18px; cursor: pointer; border: 4px solid #fff; background: color(var(--ad-Color-prim) l(+10%)); border-radius: 50%; } .ad-Checkbox-input:checked + .ad-Checkbox-fake::after { left: auto; right: 0; border-color: var(--ad-Color-sec); } .ad-Choices { display: flex; width: 12rem; } .ad-Choice { flex: 1; } .ad-Choice-input { display: none; } .ad-Choice-fake { padding: .6rem; background: color(var(--ad-Color-prim) l(+10%)); border: 4px solid transparent; transition: border .2s; cursor: pointer; text-align: center; text-transform: uppercase; font-family: "Open Sans", sans-serif; font-size: .8rem; font-weight: bold; color: #fff; } .ad-Choice:first-child .ad-Choice-fake { border-radius: 4px 0 0 4px; } .ad-Choice:last-child .ad-Choice-fake { border-radius: 0 4px 4px 0; } .ad-Choice-input:checked + .ad-Choice-fake { border-color: var(--ad-Color-sec); } .ad-Range { display: flex; align-items: center; } .ad-Range-text { margin-left: .5rem; } .ad-Range-input { width: 100%; height: 14px; appearance: none; border-radius: 30px; background: color(var(--ad-Color-prim) l(+10%)); } .ad-Range-input:focus { outline: 0; background: color(var(--ad-Color-prim) l(+20%)); } /* thumb */ .ad-Range-input::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border: 4px solid #fff; background: color(var(--ad-Color-prim) l(+10%)); border-radius: 50%; cursor: pointer; transition: border .2s; } .ad-Range-input::-moz-range-thumb { -webkit-appearance: none; width: 18px; height: 18px; border: 4px solid #fff; background: color(var(--ad-Color-prim) l(+10%)); border-radius: 50%; cursor: pointer; transition: border .2s; } .ad-Range-input:hover::-webkit-slider-thumb, .ad-Range-input:focus::-webkit-slider-thumb { border-color: var(--ad-Color-sec); } .ad-Range-input:hover::-moz-range-thumb, .ad-Range-input:focus::-moz-range-thumb { border-color: var(--ad-Color-sec); } <div id="app" class="ad-App"> </div> 不幸的是,代码大小超出了本地限制,因此您将不得不使用“codepen”的链接: 翻译:SVG Bezier 曲线编辑器 来源:SVG Path Builder
我最常使用draw.io,它是俄语的。
更多在线编辑:
矢量图形在线编辑(收藏)
并帮助将svg上的文章从MDN翻译成俄语,我悄悄地学习自己。
啊,是的,前几天我从一个叔叔那里偷了一个很酷的贝塞尔曲线编辑器,然后把它翻译成他自己的语言。(是英文的)
不幸的是,代码大小超出了本地限制,因此您将不得不使用“codepen”的链接:
翻译:SVG Bezier 曲线编辑器
来源:SVG Path Builder